diff options
author | Nassim Jahnke <[email protected]> | 2024-12-03 17:58:41 +0100 |
---|---|---|
committer | Nassim Jahnke <[email protected]> | 2024-12-03 17:58:41 +0100 |
commit | c0a3d51ab35930e410fcd9752ceaff6c3f581c24 (patch) | |
tree | f53076a8b0787d2f544f73f468df94619e5eb1a5 /patches/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch | |
parent | da7138233f6392e791d790d1c3407414c855f9c2 (diff) | |
download | Paper-c0a3d51ab35930e410fcd9752ceaff6c3f581c24.tar.gz Paper-c0a3d51ab35930e410fcd9752ceaff6c3f581c24.zip |
Start update, apply API patches
Diffstat (limited to 'patches/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch')
-rw-r--r-- | patches/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/patches/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch b/patches/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch deleted file mode 100644 index 1c9bd827bd..0000000000 --- a/patches/server/0122-Provide-E-TE-Chunk-count-stat-methods.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar <[email protected]> -Date: Sat, 7 Jan 2017 15:24:46 -0500 -Subject: [PATCH] Provide E/TE/Chunk count stat methods - -Provides counts without the ineffeciency of using .getEntities().size() -which creates copy of the collections. - -diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 943c14b26cf5b1c9f9ea1acec058cecac3b93bf7..e5eac1977f77b7ce1112bfe7ac1b77d9ef4d90f4 100644 ---- a/src/main/java/net/minecraft/world/level/Level.java -+++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -116,7 +116,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - public static final int TICKS_PER_DAY = 24000; - public static final int MAX_ENTITY_SPAWN_Y = 20000000; - public static final int MIN_ENTITY_SPAWN_Y = -20000000; -- protected final List<TickingBlockEntity> blockEntityTickers = Lists.newArrayList(); -+ public final List<TickingBlockEntity> blockEntityTickers = Lists.newArrayList(); // Paper - public - protected final NeighborUpdater neighborUpdater; - private final List<TickingBlockEntity> pendingBlockEntityTickers = Lists.newArrayList(); - private boolean tickingBlockEntities; -diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 67f9a3ff28014235754121363e7a622787092bfb..ecdfe2d1e9ddc16034523619aa304a451269763b 100644 ---- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -169,6 +169,48 @@ public class CraftWorld extends CraftRegionAccessor implements World { - private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftWorld.DATA_TYPE_REGISTRY); - private net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers - -+ // Paper start - Provide fast information methods -+ @Override -+ public int getEntityCount() { -+ int ret = 0; -+ for (net.minecraft.world.entity.Entity entity : world.getEntities().getAll()) { -+ if (entity.isChunkLoaded()) { -+ ++ret; -+ } -+ } -+ return ret; -+ } -+ -+ @Override -+ public int getTileEntityCount() { -+ // We don't use the full world tile entity list, so we must iterate chunks -+ int size = 0; -+ for (ChunkHolder playerchunk : ca.spottedleaf.moonrise.common.util.ChunkSystem.getVisibleChunkHolders(this.world)) { -+ net.minecraft.world.level.chunk.LevelChunk chunk = playerchunk.getTickingChunk(); -+ if (chunk == null) { -+ continue; -+ } -+ size += chunk.blockEntities.size(); -+ } -+ return size; -+ } -+ -+ @Override -+ public int getTickableTileEntityCount() { -+ return world.blockEntityTickers.size(); -+ } -+ -+ @Override -+ public int getChunkCount() { -+ return this.world.getChunkSource().getFullChunksCount(); -+ } -+ -+ @Override -+ public int getPlayerCount() { -+ return world.players().size(); -+ } -+ // Paper end -+ - private static final Random rand = new Random(); - - public CraftWorld(ServerLevel world, ChunkGenerator gen, BiomeProvider biomeProvider, Environment env) { |