@@ -26,7 +26,7 @@ index 00ef714294b6cce5fec7613eed4ba228a48e3e11..67b300574655854249c1f7440f56a6e8
2626 uniqueId = gameProfile.getId();
2727 // Paper end
2828diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
29- index 45914c7cf1ae300c47a43b23bcf868bbb96d911b..5f86cddc176b6205768653a901825e53f10dcae0 100644
29+ index 45914c7cf1ae300c47a43b23bcf868bbb96d911b..096bd762a7e52230118f14bc839a87ecf437837c 100644
3030--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
3131+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
3232@@ -72,6 +72,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
@@ -37,40 +37,54 @@ index 45914c7cf1ae300c47a43b23bcf868bbb96d911b..5f86cddc176b6205768653a901825e53
3737 import net.minecraft.world.level.block.entity.SignBlockEntity;
3838 import net.minecraft.world.level.saveddata.maps.MapDecoration;
3939 import net.minecraft.world.level.saveddata.maps.MapItemSavedData;
40- @@ -1382,8 +1383,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
40+ @@ -1382,8 +1383,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
4141 this.hiddenEntities.put(entity.getUniqueId(), hidingPlugins);
4242
4343 // Remove this entity from the hidden player's EntityTrackerEntry
4444- ChunkMap tracker = ((ServerLevel) this.getHandle().level).getChunkSource().chunkMap;
4545+ // Paper start
4646 Entity other = ((CraftEntity) entity).getHandle();
4747+ unregisterEntity(other);
48+ +
49+ + server.getPluginManager().callEvent(new PlayerHideEntityEvent(this, entity));
4850+ }
4951+ private void unregisterEntity(Entity other) {
5052+ // Paper end
5153+ ChunkMap tracker = ((ServerLevel) this.getHandle().level).getChunkSource().chunkMap;
5254 ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId());
5355 if (entry != null) {
5456 entry.removePlayer(this.getHandle());
55- @@ -1434,8 +1440,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
57+ @@ -1396,8 +1404,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
58+ this.getHandle().connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.REMOVE_PLAYER, otherPlayer));
59+ }
60+ }
61+ -
62+ - server.getPluginManager().callEvent(new PlayerHideEntityEvent(this, entity));
63+ }
64+
65+ @Override
66+ @@ -1434,8 +1440,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
5667 }
5768 this.hiddenEntities.remove(entity.getUniqueId());
5869
5970- ChunkMap tracker = ((ServerLevel) this.getHandle().level).getChunkSource().chunkMap;
6071+ // Paper start
6172 Entity other = ((CraftEntity) entity).getHandle();
6273+ registerEntity(other);
74+ +
75+ + server.getPluginManager().callEvent(new PlayerShowEntityEvent(this, entity));
6376+ }
6477+ private void registerEntity(Entity other) {
6578+ ChunkMap tracker = ((ServerLevel) this.getHandle().level).getChunkSource().chunkMap;
6679+ // Paper end
6780
6881 if (other instanceof ServerPlayer) {
6982 ServerPlayer otherPlayer = (ServerPlayer) other;
70- @@ -1449,6 +1460,50 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
71-
72- server.getPluginManager().callEvent(new PlayerShowEntityEvent(this, entity));
73- }
83+ @@ -1446,9 +1459,51 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
84+ if (entry != null && !entry.seenBy.contains(this.getHandle().connection)) {
85+ entry.updatePlayer(this.getHandle());
86+ }
87+ + }
7488+ // Paper start
7589+ private void reregisterPlayer(ServerPlayer player) {
7690+ if (!hiddenEntities.containsKey(player.getUUID())) {
@@ -93,7 +107,8 @@ index 45914c7cf1ae300c47a43b23bcf868bbb96d911b..5f86cddc176b6205768653a901825e53
93107+ public com.destroystokyo.paper.profile.PlayerProfile getPlayerProfile() {
94108+ return new com.destroystokyo.paper.profile.CraftPlayerProfile(this).clone();
95109+ }
96- +
110+
111+ - server.getPluginManager().callEvent(new PlayerShowEntityEvent(this, entity));
97112+ private void refreshPlayer() {
98113+ ServerPlayer handle = getHandle();
99114+
@@ -113,7 +128,7 @@ index 45914c7cf1ae300c47a43b23bcf868bbb96d911b..5f86cddc176b6205768653a901825e53
113128+ this.setOp(false);
114129+ this.setOp(true);
115130+ }
116- + }
131+ }
117132+ // Paper end
118133
119134 public void onEntityRemove(Entity entity) {
0 commit comments