From 87fc098c100a2cbebf62b80613ca7bdb79e23542 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sat, 18 May 2024 18:50:20 +0800 Subject: [PATCH] feat(ExamplePlugin): show loaded and loading chunk count --- .../java/org/allaymc/api/world/service/ChunkService.java | 4 ++++ .../org/allaymc/exampleplugin/ServerEventListener.java | 2 ++ .../allaymc/server/world/service/AllayChunkService.java | 9 ++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Allay-API/src/main/java/org/allaymc/api/world/service/ChunkService.java b/Allay-API/src/main/java/org/allaymc/api/world/service/ChunkService.java index c5e39b2b7..a1463249f 100644 --- a/Allay-API/src/main/java/org/allaymc/api/world/service/ChunkService.java +++ b/Allay-API/src/main/java/org/allaymc/api/world/service/ChunkService.java @@ -62,5 +62,9 @@ public interface ChunkService extends ChunkAccessible { void forEachLoadedChunks(Consumer consumer); + @UnmodifiableView Collection getLoadedChunks(); + + @UnmodifiableView + Collection> getLoadingChunks(); } diff --git a/Allay-ExamplePlugin/src/main/java/org/allaymc/exampleplugin/ServerEventListener.java b/Allay-ExamplePlugin/src/main/java/org/allaymc/exampleplugin/ServerEventListener.java index f2c0470f2..c6d67a576 100644 --- a/Allay-ExamplePlugin/src/main/java/org/allaymc/exampleplugin/ServerEventListener.java +++ b/Allay-ExamplePlugin/src/main/java/org/allaymc/exampleplugin/ServerEventListener.java @@ -53,6 +53,8 @@ private void onPlayerInitialized(PlayerInitializedEvent event) { int cx = chunk.getX(); int cz = chunk.getZ(); list.add("Chunk: §a" + cx + ", " + cz); + list.add("Loaded: §a" + player.getDimension().getChunkService().getLoadedChunks().size()); + list.add("Loading: §a" + player.getDimension().getChunkService().getLoadingChunks().size()); list.add("Biome: §a" + player.getCurrentChunk().getBiome((int) loc.x() & 15, (int) loc.y(), (int) loc.z() & 15)); scoreboard.setLines(list); return true; diff --git a/Allay-Server/src/main/java/org/allaymc/server/world/service/AllayChunkService.java b/Allay-Server/src/main/java/org/allaymc/server/world/service/AllayChunkService.java index cff877b24..0f6a0642e 100644 --- a/Allay-Server/src/main/java/org/allaymc/server/world/service/AllayChunkService.java +++ b/Allay-Server/src/main/java/org/allaymc/server/world/service/AllayChunkService.java @@ -316,8 +316,15 @@ public void forEachLoadedChunks(Consumer consumer) { } @Override + @UnmodifiableView public Collection getLoadedChunks() { - return loadedChunks.values(); + return Collections.unmodifiableCollection(loadedChunks.values()); + } + + @Override + @UnmodifiableView + public Collection> getLoadingChunks() { + return Collections.unmodifiableCollection(loadingChunks.values()); } public void unloadChunk(int x, int z) {