diff options
Diffstat (limited to 'Spigot-Server-Patches-Unmapped/0085-Remove-unused-World-Tile-Entity-List.patch')
-rw-r--r-- | Spigot-Server-Patches-Unmapped/0085-Remove-unused-World-Tile-Entity-List.patch | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/Spigot-Server-Patches-Unmapped/0085-Remove-unused-World-Tile-Entity-List.patch b/Spigot-Server-Patches-Unmapped/0085-Remove-unused-World-Tile-Entity-List.patch new file mode 100644 index 0000000000..56289f6932 --- /dev/null +++ b/Spigot-Server-Patches-Unmapped/0085-Remove-unused-World-Tile-Entity-List.patch @@ -0,0 +1,90 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar <[email protected]> +Date: Wed, 13 Apr 2016 00:25:28 -0400 +Subject: [PATCH] Remove unused World Tile Entity List + +Massive hit to performance and it is completely unnecessary. + +diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java +index b40089319329a0843c4d74ebd6189fc4089e319a..2412c2fa22abe171254f7fe49d319bcd6cc533ff 100644 +--- a/src/main/java/net/minecraft/server/level/WorldServer.java ++++ b/src/main/java/net/minecraft/server/level/WorldServer.java +@@ -1722,7 +1722,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { + } + + bufferedwriter.write(String.format("entities: %d\n", this.entitiesById.size())); +- bufferedwriter.write(String.format("block_entities: %d\n", this.tileEntityList.size())); ++ bufferedwriter.write(String.format("block_entities: %d\n", this.tileEntityListTick.size())); // Paper - remove unused list + bufferedwriter.write(String.format("block_ticks: %d\n", this.getBlockTickList().a())); + bufferedwriter.write(String.format("fluid_ticks: %d\n", this.getFluidTickList().a())); + bufferedwriter.write("distance_manager: " + playerchunkmap.e().c() + "\n"); +@@ -1861,7 +1861,7 @@ public class WorldServer extends World implements GeneratorAccessSeed { + + private void a(Writer writer) throws IOException { + CSVWriter csvwriter = CSVWriter.a().a("x").a("y").a("z").a("type").a(writer); +- Iterator iterator = this.tileEntityList.iterator(); ++ Iterator iterator = this.tileEntityListTick.iterator(); // Paper - remove unused list + + while (iterator.hasNext()) { + TileEntity tileentity = (TileEntity) iterator.next(); +diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java +index 8da8141c2320c0c1a9b95826a9be2dbe22e11c14..cad86b0273c05767f78bcb3bdfaa9ea01e26af4e 100644 +--- a/src/main/java/net/minecraft/world/level/World.java ++++ b/src/main/java/net/minecraft/world/level/World.java +@@ -91,7 +91,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { + public static final ResourceKey<World> THE_NETHER = ResourceKey.a(IRegistry.L, new MinecraftKey("the_nether")); + public static final ResourceKey<World> THE_END = ResourceKey.a(IRegistry.L, new MinecraftKey("the_end")); + private static final EnumDirection[] a = EnumDirection.values(); +- public final List<TileEntity> tileEntityList = Lists.newArrayList(); ++ //public final List<TileEntity> tileEntityList = Lists.newArrayList(); // Paper - remove unused list + public final List<TileEntity> tileEntityListTick = Lists.newArrayList(); + protected final List<TileEntity> tileEntityListPending = Lists.newArrayList(); + protected final java.util.Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet(); +@@ -683,9 +683,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable { + }, tileentity::getPosition}); + } + +- boolean flag = this.tileEntityList.add(tileentity); ++ boolean flag = true; // Paper - remove unused list + +- if (flag && tileentity instanceof ITickable) { ++ if (flag && tileentity instanceof ITickable && !this.tileEntityListTick.contains(tileentity)) { // Paper + this.tileEntityListTick.add(tileentity); + } + +@@ -721,7 +721,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { + timings.tileEntityTick.startTiming(); // Spigot + if (!this.tileEntityListUnload.isEmpty()) { + this.tileEntityListTick.removeAll(this.tileEntityListUnload); +- this.tileEntityList.removeAll(this.tileEntityListUnload); ++ //this.tileEntityList.removeAll(this.tileEntityListUnload); // Paper - remove unused list + this.tileEntityListUnload.clear(); + } + +@@ -781,7 +781,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { + tilesThisCycle--; + this.tileEntityListTick.remove(tileTickPosition--); + // Spigot end +- this.tileEntityList.remove(tileentity); ++ //this.tileEntityList.remove(tileentity); // Paper - remove unused list + if (this.isLoaded(tileentity.getPosition())) { + this.getChunkAtWorldCoords(tileentity.getPosition()).removeTileEntity(tileentity.getPosition()); + } +@@ -811,7 +811,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { + this.notify(tileentity1.getPosition(), iblockdata, iblockdata, 3); + // CraftBukkit start + // From above, don't screw this up - SPIGOT-1746 +- if (!this.tileEntityList.contains(tileentity1)) { ++ if (true) { // Paper - remove unused list + this.a(tileentity1); + } + // CraftBukkit end +@@ -957,7 +957,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { + } else { + if (tileentity != null) { + this.tileEntityListPending.remove(tileentity); +- this.tileEntityList.remove(tileentity); ++ //this.tileEntityList.remove(tileentity); // Paper - remove unused list + this.tileEntityListTick.remove(tileentity); + } + |