From e29c5d972540000dcf78964545f3580850b3e325 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Sat, 13 Oct 2012 15:27:45 -0500 Subject: [PATCH] Ensure entity isn't destroyed when trying to show it. Fixes BUKKIT-2038 If two players (or a player and any other entity) are teleported to the same location in the same tick they will both get added to the other's destroy queue then have a new entity spawn packet sent. Next tick the destroy queue will be processed and they will then be invisible to each other. To prevent this situation we remove the entity from the destroy queue when sending out a spawn packet for them. By: Travis Watkins --- .../src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java | 1 - 1 file changed, 1 deletion(-) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 1b88232b1..4e6dfb5c5 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -631,7 +631,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { EntityTracker tracker = ((WorldServer) entity.world).tracker; EntityPlayer other = ((CraftPlayer) player).getHandle(); EntityTrackerEntry entry = (EntityTrackerEntry) tracker.trackedEntities.get(other.id); - getHandle().g.remove(Integer.valueOf(other.id)); // Should be called destroyQueue if (entry != null && !entry.trackedPlayers.contains(getHandle())) { entry.updatePlayer(getHandle()); }