SPIGOT-7312: Entity#setVisibleByDefault on player causes skin reset on this player client

This commit is contained in:
md_5 2023-03-25 08:49:26 +11:00
parent 93813509b6
commit e237f8c88a
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -1340,6 +1340,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
void resetAndHideEntity(org.bukkit.entity.Entity entity) {
// SPIGOT-7312: Can't show/hide self
if (equals(entity)) {
return;
}
if (invertedVisibilityEntities.remove(entity.getUniqueId()) == null) {
untrackAndHideEntity(entity);
}
@ -1413,6 +1418,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
void resetAndShowEntity(org.bukkit.entity.Entity entity) {
// SPIGOT-7312: Can't show/hide self
if (equals(entity)) {
return;
}
if (invertedVisibilityEntities.remove(entity.getUniqueId()) == null) {
trackAndShowEntity(entity);
}
@ -1429,7 +1439,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public boolean canSee(org.bukkit.entity.Entity entity) {
return entity.isVisibleByDefault() ^ invertedVisibilityEntities.containsKey(entity.getUniqueId());
return equals(entity) || entity.isVisibleByDefault() ^ invertedVisibilityEntities.containsKey(entity.getUniqueId()); // SPIGOT-7312: Can always see self
}
public boolean canSee(UUID uuid) {