mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-25 09:41:29 +01:00
Remove player from destroy queue when they go visible. Fixes BUKKIT-2071
If a plugin calls player.hidePlayer(other); then player.showPlayer(other); in the same tick the other player will be added to the entity destroy queue then a spawn packet will be sent. On the next tick the queue will be processed and a destroy packet will be sent that renders the other player invisible. To correct this we ensure the destroy queue is in sync with use of the vanish API. By: Travis Watkins <amaranth@ubuntu.com>
This commit is contained in:
parent
0d3ff61b07
commit
980784204e
@ -631,6 +631,7 @@ 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());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user