aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches-Unmapped/0085-Remove-unused-World-Tile-Entity-List.patch
diff options
context:
space:
mode:
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.patch90
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);
+ }
+