Skip to content

Commit

Permalink
Try really hard to re-show hidden entities
Browse files Browse the repository at this point in the history
  • Loading branch information
Morphan1 committed Mar 7, 2018
1 parent cf34e8a commit e1ed31b
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 50 deletions.
Expand Up @@ -340,18 +340,21 @@ public void unhideEntity(Player player, Entity entity) {
CraftPlayer craftPlayer = (CraftPlayer)player;
EntityPlayer entityPlayer = craftPlayer.getHandle();
UUID playerUUID = player.getUniqueId();
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity) && hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity)) {
UUID entityUUID = entity.getUniqueId();
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_10_R1.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if(entry != null && !entry.trackedPlayers.contains(entityPlayer)) {
entry.updatePlayer(entityPlayer);
if (hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
}
}
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_10_R1.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if (entry != null) {
entry.clear(entityPlayer);
entry.updatePlayer(entityPlayer);
}
}
}

Expand All @@ -361,7 +364,8 @@ public boolean isHidden(Player player, Entity entity) {
return !player.canSee((Player) entity);
}
UUID uuid = player.getUniqueId();
return hiddenEntities.containsKey(uuid) && hiddenEntities.get(uuid).contains(entity.getUniqueId());
Set<UUID> hiding = hiddenEntities.get(uuid);
return hiding != null && hiding.contains(entity.getUniqueId());
}

@Override
Expand Down
Expand Up @@ -339,18 +339,21 @@ public void unhideEntity(Player player, Entity entity) {
CraftPlayer craftPlayer = (CraftPlayer)player;
EntityPlayer entityPlayer = craftPlayer.getHandle();
UUID playerUUID = player.getUniqueId();
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity) && hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity)) {
UUID entityUUID = entity.getUniqueId();
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_11_R1.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if (entry != null && !entry.trackedPlayers.contains(entityPlayer)) {
entry.updatePlayer(entityPlayer);
if (hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
}
}
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_11_R1.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if (entry != null) {
entry.clear(entityPlayer);
entry.updatePlayer(entityPlayer);
}
}
}

Expand All @@ -360,7 +363,8 @@ public boolean isHidden(Player player, Entity entity) {
return !player.canSee((Player) entity);
}
UUID uuid = player.getUniqueId();
return hiddenEntities.containsKey(uuid) && hiddenEntities.get(uuid).contains(entity.getUniqueId());
Set<UUID> hiding = hiddenEntities.get(uuid);
return hiding != null && hiding.contains(entity.getUniqueId());
}

@Override
Expand Down
Expand Up @@ -339,18 +339,21 @@ public void unhideEntity(Player player, Entity entity) {
CraftPlayer craftPlayer = (CraftPlayer)player;
EntityPlayer entityPlayer = craftPlayer.getHandle();
UUID playerUUID = player.getUniqueId();
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity) && hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity)) {
UUID entityUUID = entity.getUniqueId();
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_12_R1.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if (entry != null && !entry.trackedPlayers.contains(entityPlayer)) {
entry.updatePlayer(entityPlayer);
if (hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
}
}
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_12_R1.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if (entry != null) {
entry.clear(entityPlayer);
entry.updatePlayer(entityPlayer);
}
}
}

Expand All @@ -360,7 +363,8 @@ public boolean isHidden(Player player, Entity entity) {
return !player.canSee((Player) entity);
}
UUID uuid = player.getUniqueId();
return hiddenEntities.containsKey(uuid) && hiddenEntities.get(uuid).contains(entity.getUniqueId());
Set<UUID> hiding = hiddenEntities.get(uuid);
return hiding != null && hiding.contains(entity.getUniqueId());
}

@Override
Expand Down
Expand Up @@ -340,18 +340,21 @@ public void unhideEntity(Player player, Entity entity) {
CraftPlayer craftPlayer = (CraftPlayer)player;
EntityPlayer entityPlayer = craftPlayer.getHandle();
UUID playerUUID = player.getUniqueId();
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity) && hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity)) {
UUID entityUUID = entity.getUniqueId();
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_8_R3.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if(entry != null && !entry.trackedPlayers.contains(entityPlayer)) {
entry.updatePlayer(entityPlayer);
if (hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
}
}
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_8_R3.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if (entry != null) {
entry.clear(entityPlayer);
entry.updatePlayer(entityPlayer);
}
}
}

Expand All @@ -361,7 +364,8 @@ public boolean isHidden(Player player, Entity entity) {
return !player.canSee((Player) entity);
}
UUID uuid = player.getUniqueId();
return hiddenEntities.containsKey(uuid) && hiddenEntities.get(uuid).contains(entity.getUniqueId());
Set<UUID> hiding = hiddenEntities.get(uuid);
return hiding != null && hiding.contains(entity.getUniqueId());
}

@Override
Expand Down
Expand Up @@ -340,18 +340,21 @@ public void unhideEntity(Player player, Entity entity) {
CraftPlayer craftPlayer = (CraftPlayer)player;
EntityPlayer entityPlayer = craftPlayer.getHandle();
UUID playerUUID = player.getUniqueId();
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity) && hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (entityPlayer.playerConnection != null && !craftPlayer.equals(entity)) {
UUID entityUUID = entity.getUniqueId();
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_9_R2.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if(entry != null && !entry.trackedPlayers.contains(entityPlayer)) {
entry.updatePlayer(entityPlayer);
if (hiddenEntities.containsKey(playerUUID)) {
Set hidden = hiddenEntities.get(playerUUID);
if (hidden.contains(entityUUID)) {
hidden.remove(entityUUID);
}
}
EntityTracker tracker = ((WorldServer)craftPlayer.getHandle().world).tracker;
net.minecraft.server.v1_9_R2.Entity other = ((CraftEntity)entity).getHandle();
EntityTrackerEntry entry = tracker.trackedEntities.get(other.getId());
if (entry != null) {
entry.clear(entityPlayer);
entry.updatePlayer(entityPlayer);
}
}
}

Expand All @@ -361,7 +364,8 @@ public boolean isHidden(Player player, Entity entity) {
return !player.canSee((Player) entity);
}
UUID uuid = player.getUniqueId();
return hiddenEntities.containsKey(uuid) && hiddenEntities.get(uuid).contains(entity.getUniqueId());
Set<UUID> hiding = hiddenEntities.get(uuid);
return hiding != null && hiding.contains(entity.getUniqueId());
}

@Override
Expand Down

0 comments on commit e1ed31b

Please sign in to comment.