From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Flo0 Date: Mon, 8 Apr 2024 16:22:07 +0200 Subject: [PATCH] API for checking sent chunks diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java index b824be639084e73d5150b35f29506bfed7af4642..c91dd7689e767a93946ec09f39731301d0e163cb 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -3799,6 +3799,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void resetIdleDuration(); // Paper end + // Paper start - Add chunk view API + /** + * Gets the a set of chunk keys for all chunks that have been sent to the player. + * + * @return an immutable set of chunk keys + * @apiNote currently marked as experimental to gather feedback regarding the returned set being an immutable copy + * vs it potentially being an unmodifiable view of the set chunks. + */ + @ApiStatus.Experimental + java.util.@NotNull @org.jetbrains.annotations.Unmodifiable Set getSentChunkKeys(); + + /** + * Gets the set of chunks that have been sent to the player. + * + * @return an immutable set of chunks + * @apiNote currently marked as experimental to gather feedback regarding the returned set being an immutable copy + * vs it potentially being an unmodifiable view of the set chunks. + */ + @ApiStatus.Experimental + java.util.@NotNull @org.jetbrains.annotations.Unmodifiable Set getSentChunks(); + + /** + * Checks if the player has been sent a specific chunk. + * + * @param chunk the chunk to check + * @return true if the player has been sent the chunk, false otherwise + */ + default boolean isChunkSent(@NotNull org.bukkit.Chunk chunk) { + return this.isChunkSent(chunk.getChunkKey()); + } + + /** + * Checks if the player has been sent a specific chunk. + * + * @param chunkKey the chunk key to check + * @return true if the player has been sent the chunk, false otherwise + * @see org.bukkit.Chunk#getChunkKey() + */ + boolean isChunkSent(long chunkKey); + // Paper end + @NotNull @Override Spigot spigot();