Send self disguise in the same tracker refresh entry..
This commit is contained in:
		| @@ -3,7 +3,6 @@ package me.libraryaddict.disguise.disguisetypes; | |||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
|  |  | ||||||
| import org.apache.commons.lang.Validate; | import org.apache.commons.lang.Validate; | ||||||
| import org.bukkit.entity.Player; |  | ||||||
|  |  | ||||||
| import com.comphenix.protocol.wrappers.WrappedGameProfile; | import com.comphenix.protocol.wrappers.WrappedGameProfile; | ||||||
|  |  | ||||||
| @@ -102,9 +101,6 @@ public class PlayerDisguise extends TargetedDisguise { | |||||||
|                             setSkin(gameProfile); |                             setSkin(gameProfile); | ||||||
|                             if (DisguiseUtilities.isDisguiseInUse(PlayerDisguise.this)) { |                             if (DisguiseUtilities.isDisguiseInUse(PlayerDisguise.this)) { | ||||||
|                                 DisguiseUtilities.refreshTrackers(PlayerDisguise.this); |                                 DisguiseUtilities.refreshTrackers(PlayerDisguise.this); | ||||||
|                                 if (getEntity() instanceof Player && isSelfDisguiseVisible()) { |  | ||||||
|                                     DisguiseUtilities.sendSelfDisguise((Player) getEntity(), PlayerDisguise.this); |  | ||||||
|                                 } |  | ||||||
|                             } |                             } | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|   | |||||||
| @@ -345,9 +345,6 @@ public class DisguiseUtilities { | |||||||
|                 } |                 } | ||||||
|                 if (DisguiseAPI.isDisguiseInUse(disguise)) { |                 if (DisguiseAPI.isDisguiseInUse(disguise)) { | ||||||
|                     DisguiseUtilities.refreshTrackers(disguise); |                     DisguiseUtilities.refreshTrackers(disguise); | ||||||
|                     if (disguise.getEntity() instanceof Player && disguise.isSelfDisguiseVisible()) { |  | ||||||
|                         DisguiseUtilities.sendSelfDisguise((Player) disguise.getEntity(), disguise); |  | ||||||
|                     } |  | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
| @@ -518,6 +515,9 @@ public class DisguiseUtilities { | |||||||
|      */ |      */ | ||||||
|     public static void refreshTrackers(TargetedDisguise disguise) { |     public static void refreshTrackers(TargetedDisguise disguise) { | ||||||
|         try { |         try { | ||||||
|  |             if (disguise.isDisguiseInUse() && disguise.getEntity() instanceof Player) { | ||||||
|  |                 DisguiseUtilities.sendSelfDisguise((Player) disguise.getEntity(), disguise); | ||||||
|  |             } | ||||||
|             Object entityTrackerEntry = ReflectionManager.getEntityTrackerEntry(disguise.getEntity()); |             Object entityTrackerEntry = ReflectionManager.getEntityTrackerEntry(disguise.getEntity()); | ||||||
|             if (entityTrackerEntry != null) { |             if (entityTrackerEntry != null) { | ||||||
|                 HashSet trackedPlayers = (HashSet) ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayers").get( |                 HashSet trackedPlayers = (HashSet) ReflectionManager.getNmsField("EntityTrackerEntry", "trackedPlayers").get( | ||||||
| @@ -532,7 +532,7 @@ public class DisguiseUtilities { | |||||||
|                     // if (entity instanceof Player && !((Player) ReflectionManager.getBukkitEntity(player)).canSee((Player) |                     // if (entity instanceof Player && !((Player) ReflectionManager.getBukkitEntity(player)).canSee((Player) | ||||||
|                     // entity)) |                     // entity)) | ||||||
|                     // continue; |                     // continue; | ||||||
|                     if (player == disguise.getEntity() || disguise.canSee(player.getName())) { |                     if (disguise.canSee(player.getName())) { | ||||||
|                         clear.invoke(entityTrackerEntry, p); |                         clear.invoke(entityTrackerEntry, p); | ||||||
|                         updatePlayer.invoke(entityTrackerEntry, p); |                         updatePlayer.invoke(entityTrackerEntry, p); | ||||||
|                     } |                     } | ||||||
| @@ -609,9 +609,10 @@ public class DisguiseUtilities { | |||||||
|     /** |     /** | ||||||
|      * Sends the self disguise to the player |      * Sends the self disguise to the player | ||||||
|      */ |      */ | ||||||
|     public static void sendSelfDisguise(final Player player, final Disguise disguise) { |     public static void sendSelfDisguise(final Player player, final TargetedDisguise disguise) { | ||||||
|         try { |         try { | ||||||
|             if (!player.isValid() || !player.isOnline() || !disguise.isSelfDisguiseVisible()) { |             if (!disguise.isDisguiseInUse() || !player.isValid() || !player.isOnline() || !disguise.isSelfDisguiseVisible() | ||||||
|  |                     || !disguise.canSee(player)) { | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|             Object entityTrackerEntry = ReflectionManager.getEntityTrackerEntry(player); |             Object entityTrackerEntry = ReflectionManager.getEntityTrackerEntry(player); | ||||||
| @@ -748,7 +749,7 @@ public class DisguiseUtilities { | |||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         selfDisguised.add(player.getUniqueId()); |         selfDisguised.add(player.getUniqueId()); | ||||||
|         sendSelfDisguise(player, disguise); |         sendSelfDisguise(player, (TargetedDisguise) disguise); | ||||||
|         if (disguise.isHidingArmorFromSelf() || disguise.isHidingHeldItemFromSelf()) { |         if (disguise.isHidingArmorFromSelf() || disguise.isHidingHeldItemFromSelf()) { | ||||||
|             if (PacketsManager.isInventoryListenerEnabled()) { |             if (PacketsManager.isInventoryListenerEnabled()) { | ||||||
|                 player.updateInventory(); |                 player.updateInventory(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user