From 0073935df3eb903a5cb29a7c5dadebd260e30d73 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 28 Jul 2018 12:09:20 -0400 Subject: [PATCH] Always process chunk removal in removeEntity Spigot might skip chunk registration changes in removeEntity which can keep them in the chunk when they shouldnt be if done during entity ticking. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index 3ea26d5ad8..c2d404b813 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1159,7 +1159,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.everyoneSleeping(); } - if (!guardEntityList) { // Spigot - It will get removed after the tick if we are ticking + // if (!guardEntityList) { // Spigot - It will get removed after the tick if we are ticking // Paper - move down int i = entity.ae; int j = entity.ag; @@ -1167,6 +1167,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc this.getChunkAt(i, j).b(entity); } + if (!guardEntityList) { // Spigot - It will get removed after the tick if we are ticking // Paper - always remove from current chunk above // CraftBukkit start - Decrement loop variable field if we've already ticked this entity int index = this.entityList.indexOf(entity); if (index != -1) { -- 2.18.0