diff --git a/Spigot-Server-Patches/Optimize-entity-list-iteration-requiring-entities-be.patch b/Spigot-Server-Patches/Optimize-entity-list-iteration-requiring-entities-be.patch index 485571381..22f015454 100644 --- a/Spigot-Server-Patches/Optimize-entity-list-iteration-requiring-entities-be.patch +++ b/Spigot-Server-Patches/Optimize-entity-list-iteration-requiring-entities-be.patch @@ -10,6 +10,30 @@ diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/m index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java +@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess { + entity.chunkZ = this.loc.z; + this.entities.add(entity); // Paper - per chunk entity list + this.entitySlices[k].add(entity); if (entity.hardCollides()) this.hardCollidingEntities[k].add(entity); // Paper - optimise hard colliding entities ++ // Paper start - world loaded entity list ++ if (this.loadedTicketLevel) { ++ ((WorldServer)this.world).loadedEntities.add(entity); ++ } else { ++ ((WorldServer)this.world).loadedEntities.remove(entity); ++ } ++ // Paper end - world loaded entity list + // Paper start + if (entity instanceof EntityItem) { + itemCounts[k]++; +@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess { + if (entity.hardCollides()) this.hardCollidingEntities[i].remove(entity); if (!this.entitySlices[i].remove(entity)) { // Paper - optimise hard colliding entities + return; + } ++ // Paper start - world loaded entity list ++ ((WorldServer)this.world).loadedEntities.remove(entity); ++ // Paper end - world loaded entity list + if (entity instanceof EntityItem) { + itemCounts[i]--; + } else if (entity instanceof IInventory) { @@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess { this.setNeighbourLoaded(0, 0, this); this.loadedTicketLevel = true;