42433c2626
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 09f10fd9 SPIGOT-5950: Add PrepareSmithingEvent event CraftBukkit Changes: 7c03d257 SPIGOT-6011: End Gateways do not work on Non-Main End Worlds d492e363 SPIGOT-6015: Small Armor Stand doesn't drop items 5db13eea SPIGOT-5950: Add PrepareSmithingEvent event
90 lines
5.4 KiB
Diff
90 lines
5.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
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/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index 3fc0fcc9e6598ec77fd562c0887335fe018b4051..e2167413702f8a7369e4719fd6bb28e2e4fc86ef 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -39,7 +39,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
public static final ResourceKey<World> THE_NETHER = ResourceKey.a(IRegistry.ae, new MinecraftKey("the_nether"));
|
|
public static final ResourceKey<World> THE_END = ResourceKey.a(IRegistry.ae, 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();
|
|
@@ -666,9 +666,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);
|
|
}
|
|
|
|
@@ -704,7 +704,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();
|
|
}
|
|
|
|
@@ -765,7 +765,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());
|
|
}
|
|
@@ -795,7 +795,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
|
|
@@ -937,7 +937,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);
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
|
index f67a654d0a32967720a7d234f1a467387ea0dbbf..1525ea4666d67072f16a04647af238c82bcd3fbb 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
@@ -1541,7 +1541,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");
|
|
@@ -1680,7 +1680,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();
|