mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-05 18:27:17 +01:00
Purge hidden entities on unload too
By: md_5 <git@md-5.net>
This commit is contained in:
parent
4f6a5feac8
commit
6646c417c5
3 changed files with 12 additions and 5 deletions
|
@ -592,11 +592,18 @@
|
|||
}
|
||||
|
||||
public void onTrackingEnd(Entity entity) {
|
||||
@@ -1664,6 +1877,7 @@
|
||||
@@ -1664,6 +1877,14 @@
|
||||
gameeventlistenerregistrar.onListenerRemoved(entity.level);
|
||||
}
|
||||
|
||||
+ entity.valid = false; // CraftBukkit
|
||||
+ // CraftBukkit start
|
||||
+ entity.valid = false;
|
||||
+ if (!(entity instanceof EntityPlayer)) {
|
||||
+ for (EntityPlayer player : players) {
|
||||
+ player.getBukkitEntity().onEntityRemove(entity);
|
||||
+ }
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -301,7 +301,7 @@
|
|||
+ if (entityplayer2.getBukkitEntity().canSee(entityplayer.getBukkitEntity())) {
|
||||
+ entityplayer2.connection.send(packet);
|
||||
+ } else {
|
||||
+ entityplayer2.getBukkitEntity().removeDisconnectingPlayer(entityplayer.getBukkitEntity());
|
||||
+ entityplayer2.getBukkitEntity().onEntityRemove(entityplayer);
|
||||
+ }
|
||||
}
|
||||
+ // This removes the scoreboard (and player reference) for the specific player in the manager
|
||||
|
|
|
@ -1154,8 +1154,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|||
}
|
||||
}
|
||||
|
||||
public void removeDisconnectingPlayer(Player player) {
|
||||
hiddenEntities.remove(player.getUniqueId());
|
||||
public void onEntityRemove(Entity entity) {
|
||||
hiddenEntities.remove(entity.getUUID());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue