Code cleanup, fixed primed tnt disappearing
This commit is contained in:
		| @@ -183,25 +183,29 @@ public abstract class Disguise { | |||||||
|             public void run() { |             public void run() { | ||||||
|                 // If entity is no longer valid. Remove it. |                 // If entity is no longer valid. Remove it. | ||||||
|                 if (!getEntity().isValid()) { |                 if (!getEntity().isValid()) { | ||||||
|                     DisguiseAPI.undisguiseToAll(entity); |                     DisguiseAPI.undisguiseToAll(getEntity()); | ||||||
|                 } else { |                 } else { | ||||||
|                     // If the disguise type is tnt, we need to resend the entity packet else it will turn invisible |                     // If the disguise type is tnt, we need to resend the entity packet else it will turn invisible | ||||||
|                     if (getType() == DisguiseType.PRIMED_TNT) { |                     if (getType() == DisguiseType.PRIMED_TNT) { | ||||||
|                         i++; |                         i++; | ||||||
|                         if (i % 40 == 0) { |                         if (i % 40 == 0) { | ||||||
|                             i = 0; |                             i = 0; | ||||||
|                             ProtocolLibrary.getProtocolManager().updateEntity(getEntity(), getPerverts()); |                             DisguiseUtilities.refreshTrackers(getEntity()); | ||||||
|  |                             if (getEntity() instanceof Player && isSelfDisguiseVisible()) { | ||||||
|  |                                 DisguiseUtilities.sendSelfDisguise((Player) getEntity()); | ||||||
|  |                             } | ||||||
|  |                             // ProtocolLibrary.getProtocolManager().updateEntity(getEntity(), getPerverts()); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                     // If the vectorY isn't 0. Cos if it is. Then it doesn't want to send any vectors. |                     // If the vectorY isn't 0. Cos if it is. Then it doesn't want to send any vectors. | ||||||
|                     // If this disguise has velocity sending enabled and the entity is flying. |                     // If this disguise has velocity sending enabled and the entity is flying. | ||||||
|                     if (vectorY != 0 && isVelocitySent() && (alwaysSendVelocity || !entity.isOnGround())) { |                     if (vectorY != 0 && isVelocitySent() && (alwaysSendVelocity || !getEntity().isOnGround())) { | ||||||
|                         Vector vector = getEntity().getVelocity(); |                         Vector vector = getEntity().getVelocity(); | ||||||
|                         // If the entity doesn't have velocity changes already |                         // If the entity doesn't have velocity changes already | ||||||
|                         if (vector.getY() != 0 && !(vector.getY() < 0 && alwaysSendVelocity && getEntity().isOnGround())) { |                         if (vector.getY() != 0 && !(vector.getY() < 0 && alwaysSendVelocity && getEntity().isOnGround())) { | ||||||
|                             return; |                             return; | ||||||
|                         } |                         } | ||||||
|                         if (getType() != DisguiseType.EXPERIENCE_ORB || !entity.isOnGround()) { |                         if (getType() != DisguiseType.EXPERIENCE_ORB || !getEntity().isOnGround()) { | ||||||
|                             PacketContainer lookPacket = null; |                             PacketContainer lookPacket = null; | ||||||
|                             if (getType() == DisguiseType.WITHER_SKULL) { |                             if (getType() == DisguiseType.WITHER_SKULL) { | ||||||
|                                 lookPacket = new PacketContainer(Packets.Server.ENTITY_LOOK); |                                 lookPacket = new PacketContainer(Packets.Server.ENTITY_LOOK); | ||||||
| @@ -210,12 +214,12 @@ public abstract class Disguise { | |||||||
|                                 Location loc = getEntity().getLocation(); |                                 Location loc = getEntity().getLocation(); | ||||||
|                                 mods.write( |                                 mods.write( | ||||||
|                                         4, |                                         4, | ||||||
|                                         PacketsManager.getYaw(getType(), DisguiseType.getType(entity.getType()), |                                         PacketsManager.getYaw(getType(), DisguiseType.getType(getEntity().getType()), | ||||||
|                                                 (byte) Math.floor(loc.getYaw() * 256.0F / 360.0F))); |                                                 (byte) Math.floor(loc.getYaw() * 256.0F / 360.0F))); | ||||||
|                                 mods.write(5, (byte) Math.floor(loc.getPitch() * 256.0F / 360.0F)); |                                 mods.write(5, (byte) Math.floor(loc.getPitch() * 256.0F / 360.0F)); | ||||||
|                                 if (isSelfDisguiseVisible() && getEntity() instanceof Player) { |                                 if (isSelfDisguiseVisible() && getEntity() instanceof Player) { | ||||||
|                                     PacketContainer selfLookPacket = lookPacket.shallowClone(); |                                     PacketContainer selfLookPacket = lookPacket.shallowClone(); | ||||||
|                                     selfLookPacket.getModifier().write(0, DisguiseAPI.getFakeDisguise(entity.getEntityId())); |                                     selfLookPacket.getModifier().write(0, DisguiseAPI.getFakeDisguise(getEntity().getEntityId())); | ||||||
|                                     try { |                                     try { | ||||||
|                                         ProtocolLibrary.getProtocolManager().sendServerPacket((Player) getEntity(), |                                         ProtocolLibrary.getProtocolManager().sendServerPacket((Player) getEntity(), | ||||||
|                                                 selfLookPacket, false); |                                                 selfLookPacket, false); | ||||||
| @@ -233,7 +237,7 @@ public abstract class Disguise { | |||||||
|                                         if (!isSelfDisguiseVisible()) { |                                         if (!isSelfDisguiseVisible()) { | ||||||
|                                             continue; |                                             continue; | ||||||
|                                         } |                                         } | ||||||
|                                         mods.write(0, DisguiseAPI.getFakeDisguise(entity.getEntityId())); |                                         mods.write(0, DisguiseAPI.getFakeDisguise(getEntity().getEntityId())); | ||||||
|                                     } else { |                                     } else { | ||||||
|                                         mods.write(0, getEntity().getEntityId()); |                                         mods.write(0, getEntity().getEntityId()); | ||||||
|                                     } |                                     } | ||||||
| @@ -258,7 +262,7 @@ public abstract class Disguise { | |||||||
|                             StructureModifier<Object> mods = packet.getModifier(); |                             StructureModifier<Object> mods = packet.getModifier(); | ||||||
|                             mods.write(0, getEntity().getEntityId()); |                             mods.write(0, getEntity().getEntityId()); | ||||||
|                             for (Player player : getPerverts()) { |                             for (Player player : getPerverts()) { | ||||||
|                                 if (DisguiseAPI.isViewDisguises() || entity != player) { |                                 if (DisguiseAPI.isViewDisguises() || getEntity() != player) { | ||||||
|                                     try { |                                     try { | ||||||
|                                         ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet); |                                         ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet); | ||||||
|                                     } catch (InvocationTargetException e) { |                                     } catch (InvocationTargetException e) { | ||||||
| @@ -379,7 +383,7 @@ public abstract class Disguise { | |||||||
|                     // Gotta do reflection, copy code or open up calls. |                     // Gotta do reflection, copy code or open up calls. | ||||||
|                     // Reflection is the cleanest? |                     // Reflection is the cleanest? | ||||||
|                     if (getEntity() instanceof Player) { |                     if (getEntity() instanceof Player) { | ||||||
|                         DisguiseUtilities.removeSelfDisguise((Player) entity); |                         DisguiseUtilities.removeSelfDisguise((Player) getEntity()); | ||||||
|                     } |                     } | ||||||
|                     // Better refresh the entity to undisguise it |                     // Better refresh the entity to undisguise it | ||||||
|                     DisguiseUtilities.refreshTrackers(getEntity()); |                     DisguiseUtilities.refreshTrackers(getEntity()); | ||||||
| @@ -406,7 +410,7 @@ public abstract class Disguise { | |||||||
|      * Set the entity of the disguise. Only used for internal things. |      * Set the entity of the disguise. Only used for internal things. | ||||||
|      */ |      */ | ||||||
|     public void setEntity(org.bukkit.entity.Entity entity) { |     public void setEntity(org.bukkit.entity.Entity entity) { | ||||||
|         if (this.entity != null) { |         if (this.getEntity() != null) { | ||||||
|             throw new RuntimeException("This disguise is already in use! Try .clone()"); |             throw new RuntimeException("This disguise is already in use! Try .clone()"); | ||||||
|         } |         } | ||||||
|         this.entity = entity; |         this.entity = entity; | ||||||
| @@ -420,15 +424,15 @@ public abstract class Disguise { | |||||||
|  |  | ||||||
|     public void setHideArmorFromSelf(boolean hideArmor) { |     public void setHideArmorFromSelf(boolean hideArmor) { | ||||||
|         this.hideArmorFromSelf = hideArmor; |         this.hideArmorFromSelf = hideArmor; | ||||||
|         if (entity instanceof Player) { |         if (getEntity() instanceof Player) { | ||||||
|             ((Player) entity).updateInventory(); |             ((Player) getEntity()).updateInventory(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void setHideHeldItemFromSelf(boolean hideHeldItem) { |     public void setHideHeldItemFromSelf(boolean hideHeldItem) { | ||||||
|         this.hideHeldItemFromSelf = hideHeldItem; |         this.hideHeldItemFromSelf = hideHeldItem; | ||||||
|         if (entity instanceof Player) { |         if (getEntity() instanceof Player) { | ||||||
|             ((Player) entity).updateInventory(); |             ((Player) getEntity()).updateInventory(); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -442,7 +446,7 @@ public abstract class Disguise { | |||||||
|      */ |      */ | ||||||
|     private void setupWatcher() { |     private void setupWatcher() { | ||||||
|         HashMap<Integer, Object> disguiseValues = DisguiseValues.getMetaValues(getType()); |         HashMap<Integer, Object> disguiseValues = DisguiseValues.getMetaValues(getType()); | ||||||
|         HashMap<Integer, Object> entityValues = DisguiseValues.getMetaValues(DisguiseType.getType(entity.getType())); |         HashMap<Integer, Object> entityValues = DisguiseValues.getMetaValues(DisguiseType.getType(getEntity().getType())); | ||||||
|         // Start from 2 as they ALL share 0 and 1 |         // Start from 2 as they ALL share 0 and 1 | ||||||
|         for (int dataNo = 2; dataNo <= 31; dataNo++) { |         for (int dataNo = 2; dataNo <= 31; dataNo++) { | ||||||
|             // STEP 1. Find out if the watcher has set data on it. |             // STEP 1. Find out if the watcher has set data on it. | ||||||
|   | |||||||
| @@ -673,7 +673,7 @@ public class PacketsManager { | |||||||
|             @Override |             @Override | ||||||
|             public void onPacketSending(PacketEvent event) { |             public void onPacketSending(PacketEvent event) { | ||||||
|                 final Player observer = event.getPlayer(); |                 final Player observer = event.getPlayer(); | ||||||
|                 if (event.getPacket().getEntityModifier(observer.getWorld()).read(0) == observer) { |                 if (event.getPacket().getIntegers().read(0) == observer.getEntityId()) { | ||||||
|                     int fakeId = DisguiseAPI.getFakeDisguise(observer.getEntityId()); |                     int fakeId = DisguiseAPI.getFakeDisguise(observer.getEntityId()); | ||||||
|                     if (fakeId > 0) { |                     if (fakeId > 0) { | ||||||
|                         // Here I grab the packets to convert them to, So I can display them as if the disguise sent them. |                         // Here I grab the packets to convert them to, So I can display them as if the disguise sent them. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user