Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package games.coob.laserturrets.model;
- public class ArmorStand { // TODO
- /*public Object entity;
- Object item;
- private Object getMinecraftServerNMS() {
- try {
- final Method getHandle = Bukkit.getServer().getClass().getMethod("getServer");
- return getHandle.invoke(Bukkit.getServer());
- } catch (final Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- private void addPlayerConnection() {
- try {
- final Object MinecraftServer = getMinecraftServerNMS();
- final Constructor<?> newPC = ReflectionUtil.getNMSClass("PlayerConnection").getConstructors()[0];
- final Object EnumNetworkManager = ReflectionUtil.getNMSClass("EnumProtocolDirection").getField("SERVERBOUND").get(null);
- final Object NetworkManager = ReflectionUtil.getNMSClass("NetworkManager").getConstructors()[0].newInstance(EnumNetworkManager);
- newPC.newInstance(MinecraftServer, NetworkManager, entity);
- } catch (final Exception e) {
- e.printStackTrace();
- }
- }
- public ArmorStand(final Location location, final ItemStack itemStack) {
- try {
- final Object world = getWorldNMS(location.getWorld());
- entity = ReflectionUtil.getNMSClass("EntityArmorStand").getConstructors()[0].newInstance(world);
- entity.getClass().getSuperclass().getSuperclass().getMethod("setLocation", double.class, double.class, double.class, float.class, float.class).invoke(entity, location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
- entity.getClass().getMethod("setInvisible", boolean.class).invoke(entity, true);
- entity.getClass().getMethod("setGravity", boolean.class).invoke(entity, false);
- entity.getClass().getMethod("setArms", boolean.class).invoke(entity, true);
- entity.getClass().getMethod("setBasePlate", boolean.class).invoke(entity, false);
- ReflectionUtil.invoke("setEquipment", entity, 1, getCraftItemStack(itemStack));
- //entity.getClass().getMethod("setEquipment", Object.class).invoke(entity, getCraftItemStack(itemStack, location.getWorld()));
- addPlayerConnection();
- } catch (final Exception e) {
- e.printStackTrace();
- }
- }
- public Object getEntity() {
- try {
- return entity.getClass().getSuperclass().getSuperclass().getMethod("getBukkitEntity").invoke(entity);
- } catch (final Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- private Object getCraftItemStack(final ItemStack itemStack) {
- try {
- //item = ReflectionUtil.getNMSClass("inventory.CraftItemStack");
- //item.getClass().getMethod("asNMSCopy", ItemStack.class).invoke(item, itemStack);
- item = ReflectionUtil.getOBCClass("inventory.CraftItemStack");
- item.getClass().getMethod("asNMSCopy", ItemStack.class).invoke(entity, itemStack);
- //ReflectionUtil.invoke("asNMSCopy", item, itemStack);
- return item;
- } catch (final Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- private Object getWorldNMS(final World world) {
- try {
- final Method getHandle = world.getClass().getMethod("getHandle");
- final Object nmsWorld = getHandle.invoke(world);
- return ReflectionUtil.getNMSClass("World").cast(nmsWorld);
- } catch (final Exception e) {
- e.printStackTrace();
- }
- return null;
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement