Fixed isInvulnerable for real this time
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -4,7 +4,6 @@ import java.util.ArrayList; | |||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
|  |  | ||||||
| import me.libraryaddict.disguise.DisguiseConfig; | import me.libraryaddict.disguise.DisguiseConfig; | ||||||
| import me.libraryaddict.disguise.DisguiseListener; |  | ||||||
| import me.libraryaddict.disguise.LibsDisguises; | import me.libraryaddict.disguise.LibsDisguises; | ||||||
| import me.libraryaddict.disguise.disguisetypes.Disguise; | import me.libraryaddict.disguise.disguisetypes.Disguise; | ||||||
| import me.libraryaddict.disguise.disguisetypes.DisguiseType; | import me.libraryaddict.disguise.disguisetypes.DisguiseType; | ||||||
| @@ -42,7 +41,10 @@ public class DisguiseEntityCommand extends BaseDisguiseCommand { | |||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Send the player the information |      * Send the player the information | ||||||
|  |      * @param sender | ||||||
|  |      * @param map | ||||||
|      */ |      */ | ||||||
|  |     @Override | ||||||
|     protected void sendCommandUsage(CommandSender sender, HashMap<DisguiseType, HashMap<ArrayList<String>, Boolean>> map) { |     protected void sendCommandUsage(CommandSender sender, HashMap<DisguiseType, HashMap<ArrayList<String>, Boolean>> map) { | ||||||
|         ArrayList<String> allowedDisguises = getAllowedDisguises(map); |         ArrayList<String> allowedDisguises = getAllowedDisguises(map); | ||||||
|         sender.sendMessage(ChatColor.DARK_GREEN + "Choose a disguise then right click a entity to disguise it!"); |         sender.sendMessage(ChatColor.DARK_GREEN + "Choose a disguise then right click a entity to disguise it!"); | ||||||
|   | |||||||
| @@ -19,7 +19,6 @@ import me.libraryaddict.disguise.utilities.DisguiseUtilities; | |||||||
| import me.libraryaddict.disguise.utilities.PacketsManager; | import me.libraryaddict.disguise.utilities.PacketsManager; | ||||||
| import me.libraryaddict.disguise.utilities.ReflectionManager; | import me.libraryaddict.disguise.utilities.ReflectionManager; | ||||||
| import me.libraryaddict.disguise.utilities.DisguiseValues; | import me.libraryaddict.disguise.utilities.DisguiseValues; | ||||||
| import me.libraryaddict.disguise.utilities.ReflectionManager.LibVersion; |  | ||||||
|  |  | ||||||
| import org.bukkit.Bukkit; | import org.bukkit.Bukkit; | ||||||
| import org.bukkit.Location; | import org.bukkit.Location; | ||||||
| @@ -27,7 +26,6 @@ import org.bukkit.entity.Entity; | |||||||
| import org.bukkit.entity.LivingEntity; | import org.bukkit.entity.LivingEntity; | ||||||
| import org.bukkit.entity.Horse.Variant; | import org.bukkit.entity.Horse.Variant; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import org.bukkit.plugin.java.JavaPlugin; |  | ||||||
| import org.bukkit.scheduler.BukkitTask; | import org.bukkit.scheduler.BukkitTask; | ||||||
| import org.bukkit.util.Vector; | import org.bukkit.util.Vector; | ||||||
|  |  | ||||||
| @@ -54,6 +52,7 @@ public abstract class Disguise { | |||||||
|     private boolean velocitySent = DisguiseConfig.isVelocitySent(); |     private boolean velocitySent = DisguiseConfig.isVelocitySent(); | ||||||
|     private boolean viewSelfDisguise = DisguiseConfig.isViewDisguises(); |     private boolean viewSelfDisguise = DisguiseConfig.isViewDisguises(); | ||||||
|     private FlagWatcher watcher; |     private FlagWatcher watcher; | ||||||
|  |     private boolean showName = false; | ||||||
|      |      | ||||||
|     @Override |     @Override | ||||||
|     public abstract Disguise clone(); |     public abstract Disguise clone(); | ||||||
| @@ -322,6 +321,7 @@ public abstract class Disguise { | |||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get the disguised entity |      * Get the disguised entity | ||||||
|  |      * @return  | ||||||
|      */ |      */ | ||||||
|     public Entity getEntity() { |     public Entity getEntity() { | ||||||
|         return entity; |         return entity; | ||||||
| @@ -329,6 +329,7 @@ public abstract class Disguise { | |||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get the disguise type |      * Get the disguise type | ||||||
|  |      * @return  | ||||||
|      */ |      */ | ||||||
|     public DisguiseType getType() { |     public DisguiseType getType() { | ||||||
|         return disguiseType; |         return disguiseType; | ||||||
| @@ -336,6 +337,7 @@ public abstract class Disguise { | |||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Get the flag watcher |      * Get the flag watcher | ||||||
|  |      * @return  | ||||||
|      */ |      */ | ||||||
|     public FlagWatcher getWatcher() { |     public FlagWatcher getWatcher() { | ||||||
|         return watcher; |         return watcher; | ||||||
| @@ -344,6 +346,7 @@ public abstract class Disguise { | |||||||
|     /** |     /** | ||||||
|      * In use doesn't mean that this disguise is active. It means that Lib's Disguises still stores a reference to the disguise. |      * In use doesn't mean that this disguise is active. It means that Lib's Disguises still stores a reference to the disguise. | ||||||
|      * getEntity() can still return null if this disguise is active after despawn, logout, etc. |      * getEntity() can still return null if this disguise is active after despawn, logout, etc. | ||||||
|  |      * @return  | ||||||
|      */ |      */ | ||||||
|     public boolean isDisguiseInUse() { |     public boolean isDisguiseInUse() { | ||||||
|         return disguiseInUse; |         return disguiseInUse; | ||||||
| @@ -417,6 +420,14 @@ public abstract class Disguise { | |||||||
|         return velocitySent; |         return velocitySent; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Returns true if the entity's name is showing through the disguise | ||||||
|  |      * @return  | ||||||
|  |      */ | ||||||
|  |     public boolean isShowName() { | ||||||
|  |         return showName; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Removes the disguise and undisguises the entity if its using this disguise. |      * Removes the disguise and undisguises the entity if its using this disguise. | ||||||
|      *  |      *  | ||||||
| @@ -482,6 +493,8 @@ 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. | ||||||
|  |      * @param entity | ||||||
|  |      * @return  | ||||||
|      */ |      */ | ||||||
|     public Disguise setEntity(Entity entity) { |     public Disguise setEntity(Entity entity) { | ||||||
|         if (this.getEntity() != null) { |         if (this.getEntity() != null) { | ||||||
| @@ -498,6 +511,11 @@ public abstract class Disguise { | |||||||
|         return this; |         return this; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public Disguise setShowName(boolean showName) { | ||||||
|  |         this.showName = showName; | ||||||
|  |         return this; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public Disguise setHearSelfDisguise(boolean hearSelfDisguise) { |     public Disguise setHearSelfDisguise(boolean hearSelfDisguise) { | ||||||
|         this.hearSelfDisguise = hearSelfDisguise; |         this.hearSelfDisguise = hearSelfDisguise; | ||||||
|         return this; |         return this; | ||||||
|   | |||||||
| @@ -583,7 +583,7 @@ public class PacketsManager { | |||||||
|                                                         nmsEntity) == ReflectionManager.getNmsField("EntityLiving", |                                                         nmsEntity) == ReflectionManager.getNmsField("EntityLiving", | ||||||
|                                                         "maxNoDamageTicks").getInt(nmsEntity); |                                                         "maxNoDamageTicks").getInt(nmsEntity); | ||||||
|                                             } else { |                                             } else { | ||||||
|                                                 hasInvun = (Boolean) ReflectionManager.getNmsMethod("Entity", "isInvulnerable") |                                                 hasInvun = (Boolean) ReflectionManager.getNmsMethod("Entity", "isInvulnerable", DamageSource.class) | ||||||
|                                                         .invoke(nmsEntity, DamageSource.GENERIC); |                                                         .invoke(nmsEntity, DamageSource.GENERIC); | ||||||
|                                             } |                                             } | ||||||
|                                         } catch (Exception ex) { |                                         } catch (Exception ex) { | ||||||
| @@ -819,7 +819,7 @@ public class PacketsManager { | |||||||
|                             PacketContainer packet = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA); |                             PacketContainer packet = new PacketContainer(PacketType.Play.Server.ENTITY_METADATA); | ||||||
|                             StructureModifier<Object> mods = packet.getModifier(); |                             StructureModifier<Object> mods = packet.getModifier(); | ||||||
|                             mods.write(0, observer.getEntityId()); |                             mods.write(0, observer.getEntityId()); | ||||||
|                             List<WrappedWatchableObject> watchableList = new ArrayList<WrappedWatchableObject>(); |                             List<WrappedWatchableObject> watchableList = new ArrayList<>(); | ||||||
|                             byte b = (byte) 1 << 5; |                             byte b = (byte) 1 << 5; | ||||||
|                             if (observer.isSprinting()) |                             if (observer.isSprinting()) | ||||||
|                                 b = (byte) (b | 1 << 3); |                                 b = (byte) (b | 1 << 3); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user