diff --git a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java b/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java index 89275e4f..2b4b7533 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java @@ -1035,7 +1035,7 @@ public class DisguiseUtilities { PacketContainer destroyPacket = getDestroyPacket(disguise.getEntity().getEntityId()); for (Object p : trackedPlayers) { - Player player = (Player) ReflectionManager.getBukkitEntity(ReflectionManager.getTrackerPlayer(p)); + Player player = (Player) ReflectionManager.getBukkitEntity(ReflectionManager.getPlayerFromPlayerConnection(p)); if (player == disguise.getEntity() || disguise.canSee(player)) { ProtocolLibrary.getProtocolManager().sendServerPacket(player, destroyPacket); @@ -1237,7 +1237,7 @@ public class DisguiseUtilities { trackedPlayers = (Set) new HashSet(trackedPlayers).clone(); // Copy before iterating to prevent // ConcurrentModificationException for (Object p : trackedPlayers) { - Player player = (Player) ReflectionManager.getBukkitEntity(p); + Player player = (Player) ReflectionManager.getBukkitEntity(ReflectionManager.getPlayerFromPlayerConnection(p)); if (((TargetedDisguise) disguise).canSee(player)) { players.add(player); @@ -1636,7 +1636,8 @@ public class DisguiseUtilities { trackedPlayers = (Set) new HashSet(trackedPlayers).clone(); // Copy before iterating to prevent // ConcurrentModificationException - for (final Object p : trackedPlayers) { + for (final Object o : trackedPlayers) { + Object p = ReflectionManager.getPlayerFromPlayerConnection(o); Player pl = (Player) ReflectionManager.getBukkitEntity(p); if (pl == null || !player.equalsIgnoreCase((pl).getName())) { @@ -1689,7 +1690,8 @@ public class DisguiseUtilities { trackedPlayers = (Set) new HashSet(trackedPlayers).clone(); // Copy before iterating to prevent // ConcurrentModificationException - for (final Object p : trackedPlayers) { + for (final Object o : trackedPlayers) { + Object p = ReflectionManager.getPlayerFromPlayerConnection(o); Player player = (Player) ReflectionManager.getBukkitEntity(p); if (player != entity) { @@ -1757,7 +1759,7 @@ public class DisguiseUtilities { PacketContainer destroyPacket = getDestroyPacket(disguise.getEntity().getEntityId()); for (final Object o : trackedPlayers) { - Object p = ReflectionManager.getTrackerPlayer(o); + Object p = ReflectionManager.getPlayerFromPlayerConnection(o); Player player = (Player) ReflectionManager.getBukkitEntity(p); if (disguise.getEntity() != player && disguise.canSee(player)) { @@ -1874,10 +1876,10 @@ public class DisguiseUtilities { if (!runningPaper) { Object trackedPlayersObj = ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayers").get(entityTrackerEntry); - ((Set) trackedPlayersObj).remove(ReflectionManager.getEntityTrackerInstance(player)); + ((Set) trackedPlayersObj).remove(ReflectionManager.getPlayerConnectionOrPlayer(player)); } else { ((Map) ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayerMap").get(entityTrackerEntry)) - .remove(ReflectionManager.getEntityTrackerInstance(player)); + .remove(ReflectionManager.getPlayerConnectionOrPlayer(player)); } } } catch (Exception ex) { @@ -2414,10 +2416,10 @@ public class DisguiseUtilities { // Add himself to his own entity tracker Object trackedPlayersObj = ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayers").get(entityTrackerEntry); - ((Set) trackedPlayersObj).add(ReflectionManager.getEntityTrackerInstance(player)); + ((Set) trackedPlayersObj).add(ReflectionManager.getPlayerConnectionOrPlayer(player)); } else { Field field = ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayerMap"); - Object nmsEntity = ReflectionManager.getEntityTrackerInstance(player); + Object nmsEntity = ReflectionManager.getPlayerConnectionOrPlayer(player); Map map = ((Map) field.get(entityTrackerEntry)); map.put(nmsEntity, true); } diff --git a/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java b/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java index d8dcb919..19c68d39 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/reflection/ReflectionManager.java @@ -446,7 +446,7 @@ public class ReflectionManager { return -1; } - public static Object getEntityTrackerInstance(Player player) { + public static Object getPlayerConnectionOrPlayer(Player player) { try { if (NmsVersion.v1_17.isSupported()) { return playerConnection.get(getNmsEntity(player)); @@ -598,7 +598,7 @@ public class ReflectionManager { return null; } - public static Object getTrackerPlayer(Object nmsEntity) { + public static Object getPlayerFromPlayerConnection(Object nmsEntity) { try { if (NmsVersion.v1_17.isSupported()) { // Convert from player connection to EntityPlayer