diff --git a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java b/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java index 940e86f0..2e9831cf 100644 --- a/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java +++ b/src/main/java/me/libraryaddict/disguise/utilities/DisguiseUtilities.java @@ -1132,7 +1132,6 @@ public class DisguiseUtilities { return; } - PacketContainer destroyPacket = getDestroyPacket(disguise.getEntity().getEntityId()); try { if (selfDisguised.contains(disguise.getEntity().getUniqueId()) && disguise.isDisguiseInUse()) { @@ -1140,6 +1139,8 @@ public class DisguiseUtilities { selfDisguised.add(disguise.getEntity().getUniqueId()); + PacketContainer destroyPacket = getDestroyPacket(DisguiseAPI.getSelfDisguiseId()); + ProtocolLibrary.getProtocolManager().sendServerPacket((Player) disguise.getEntity(), destroyPacket); Bukkit.getScheduler().scheduleSyncDelayedTask(LibsDisguises.getInstance(), () -> { @@ -1165,6 +1166,7 @@ public class DisguiseUtilities { .getNmsMethod("EntityTrackerEntry", "b", ReflectionManager.getNmsClass("EntityPlayer")); trackedPlayers = (Set) new HashSet(trackedPlayers).clone(); + PacketContainer destroyPacket = getDestroyPacket(disguise.getEntity().getEntityId()); for (final Object p : trackedPlayers) { Player player = (Player) ReflectionManager.getBukkitEntity(p); @@ -1256,8 +1258,7 @@ public class DisguiseUtilities { // If the tracker exists. Remove himself from his tracker if (isHashSet(trackedPlayersObj)) { - ((Set) ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayers") - .get(entityTrackerEntry)).remove(ReflectionManager.getNmsEntity(player)); + ((Set) trackedPlayersObj).remove(ReflectionManager.getNmsEntity(player)); } else { ((Map) ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayerMap") .get(entityTrackerEntry)).remove(ReflectionManager.getNmsEntity(player)); @@ -1548,8 +1549,7 @@ public class DisguiseUtilities { // Check for code differences in PaperSpigot vs Spigot if (isHashSet(trackedPlayersObj)) { - ((Set) ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayers") - .get(entityTrackerEntry)).add(ReflectionManager.getNmsEntity(player)); + ((Set) trackedPlayersObj).add(ReflectionManager.getNmsEntity(player)); } else { ((Map) ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayerMap") .get(entityTrackerEntry)).put(ReflectionManager.getNmsEntity(player), true);