Fix bug in double register fix

could accidently delay entity reg by a tick if the bug this was fixing was encountered
This commit is contained in:
Aikar 2020-03-31 03:52:30 -04:00
parent 497043e491
commit 328a6a5531
2 changed files with 4 additions and 5 deletions

View file

@ -23,15 +23,14 @@ index 8da54c68cc..eb706f8636 100644
private boolean locked = false;
@Override
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 5ba46fca55..9cb22eef56 100644
index 5ba46fca55..23527809ce 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -0,0 +0,0 @@ public class WorldServer extends World {
this.tickingEntities = false;
try (co.aikar.timings.Timing ignored = this.timings.newEntities.startTiming()) { // Paper - timings
- while ((entity = (Entity) this.entitiesToAdd.poll()) != null) {
+ while ((entity = (Entity) this.entitiesToAdd.poll()) != null && entity.isQueuedForRegister) { // Paper - ignore cancelled registers
while ((entity = (Entity) this.entitiesToAdd.poll()) != null) {
+ if (!entity.isQueuedForRegister) continue; // Paper - ignore cancelled registers
this.registerEntity(entity);
}
} // Paper - timings

View file

@ -15,7 +15,7 @@ Combine that with a buggy detail of the previous implementation of
the Dupe UUID patch, then this was the likely source of the "Ghost entities"
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 9cb22eef56..f7a9b58db3 100644
index 23527809ce..941eee838b 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -0,0 +0,0 @@ public class WorldServer extends World {