mirror of
https://github.com/libraryaddict/LibsDisguises.git
synced 2024-09-11 01:38:07 +02:00
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:
parent
8690cd6604
commit
976d00dcc2
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user