Added API for EnderCrystal options
Removed Optionals from parameters in certain watchers Fixed issue with createEntityEquipment in ReflectionManager, was using NMS instead of CraftBukkit classes
This commit is contained in:
		| @@ -0,0 +1,36 @@ | |||||||
|  | package me.libraryaddict.disguise.disguisetypes.watchers; | ||||||
|  |  | ||||||
|  | import com.comphenix.protocol.wrappers.BlockPosition; | ||||||
|  | import com.google.common.base.Optional; | ||||||
|  | import me.libraryaddict.disguise.disguisetypes.Disguise; | ||||||
|  | import me.libraryaddict.disguise.disguisetypes.FlagWatcher; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * @author Navid | ||||||
|  |  */ | ||||||
|  | public class EnderCrystalWatcher extends FlagWatcher { | ||||||
|  |  | ||||||
|  |     public EnderCrystalWatcher(Disguise disguise) { | ||||||
|  |         super(disguise); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setBeamTarget(BlockPosition position) { | ||||||
|  |         setValue(5, Optional.of(position)); | ||||||
|  |         sendData(5); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public Optional<BlockPosition> getBeamTarget() { | ||||||
|  |         return (Optional) getValue(5, Optional.absent()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setShowBottom(boolean bool) { | ||||||
|  |         setValue(6, bool); | ||||||
|  |         sendData(6); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public boolean isShowBottom() { | ||||||
|  |         return (boolean) getValue(6, false); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -153,8 +153,8 @@ public class HorseWatcher extends AgeableWatcher { | |||||||
|         setHorseFlag(128, mouthOpen); |         setHorseFlag(128, mouthOpen); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void setOwner(Optional<UUID> uuid) { |     public void setOwner(UUID uuid) { | ||||||
|         setValue(15, uuid); |         setValue(15, Optional.of(uuid)); | ||||||
|         sendData(15); |         sendData(15); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -37,8 +37,8 @@ public class TameableWatcher extends AgeableWatcher { | |||||||
|         sendData(12); |         sendData(12); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void setOwner(Optional<UUID> owner) { |     public void setOwner(UUID owner) { | ||||||
|         setValue(13, owner); |         setValue(13, Optional.of(owner)); | ||||||
|         sendData(13); |         sendData(13); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -219,6 +219,21 @@ public class ReflectionManager { | |||||||
|         return null; |         return null; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public static Constructor getCraftConstructor(Class clazz, Class<?>... parameters) { | ||||||
|  |         try { | ||||||
|  |             Constructor declaredConstructor = clazz.getDeclaredConstructor(parameters); | ||||||
|  |             declaredConstructor.setAccessible(true); | ||||||
|  |             return declaredConstructor; | ||||||
|  |         } catch (NoSuchMethodException e) { | ||||||
|  |             e.printStackTrace(System.out); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public static Constructor getCraftConstructor(String className, Class<?>... parameters) { | ||||||
|  |         return getCraftConstructor(getCraftClass(className), parameters); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public static String getCraftSound(Sound sound) { |     public static String getCraftSound(Sound sound) { | ||||||
|         try { |         try { | ||||||
|             return (String) getCraftClass("CraftSound").getMethod("getSound", Sound.class).invoke(null, sound); |             return (String) getCraftClass("CraftSound").getMethod("getSound", Sound.class).invoke(null, sound); | ||||||
| @@ -655,7 +670,7 @@ public class ReflectionManager { | |||||||
|  |  | ||||||
|     public static EntityEquipment createEntityEquipment(Entity entity) { |     public static EntityEquipment createEntityEquipment(Entity entity) { | ||||||
|         if (!(entity instanceof LivingEntity)) return null; |         if (!(entity instanceof LivingEntity)) return null; | ||||||
|         Constructor construct = getNmsConstructor("CraftEntityEquipment", getNmsClass("CraftLivingEntity")); |         Constructor construct = getCraftConstructor("CraftEntityEquipment", getCraftClass("CraftLivingEntity")); | ||||||
|         try { |         try { | ||||||
|             return (EntityEquipment) construct.newInstance((LivingEntity) entity); |             return (EntityEquipment) construct.newInstance((LivingEntity) entity); | ||||||
|         } catch (InstantiationException | IllegalAccessException | InvocationTargetException | ClassCastException e) { |         } catch (InstantiationException | IllegalAccessException | InvocationTargetException | ClassCastException e) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user