From 513b9bdf8f634970f77143958836c9dd340d0760 Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 19 Nov 2013 01:30:39 +1300 Subject: [PATCH] Fixed disguise player not being constructable --- src/me/libraryaddict/disguise/LibsDisguises.java | 9 +++------ .../libraryaddict/disguise/ReflectionManager.java | 13 +++++++++++-- .../disguise/disguisetypes/Values.java | 8 ++++---- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/me/libraryaddict/disguise/LibsDisguises.java b/src/me/libraryaddict/disguise/LibsDisguises.java index 03a89339..7fad6c42 100644 --- a/src/me/libraryaddict/disguise/LibsDisguises.java +++ b/src/me/libraryaddict/disguise/LibsDisguises.java @@ -167,9 +167,6 @@ public class LibsDisguises extends JavaPlugin { case LEASH_HITCH: name = "Leash"; break; - case PLAYER: - name = "Human"; - break; default: break; } @@ -197,10 +194,10 @@ public class LibsDisguises extends JavaPlugin { sound.setDamageSoundVolume((Float) soundStrength); } } - } catch (Exception e1) { - System.out.print("[LibsDisguises] Trouble while making values for " + name + ": " + e1.getMessage()); + } catch (Exception ex) { + System.out.print("[LibsDisguises] Trouble while making values for " + name + ": " + ex.getMessage()); System.out.print("[LibsDisguises] Please report this to LibsDisguises author"); - e1.printStackTrace(); + ex.printStackTrace(); } } } diff --git a/src/me/libraryaddict/disguise/ReflectionManager.java b/src/me/libraryaddict/disguise/ReflectionManager.java index 321bd638..2a7d43c5 100644 --- a/src/me/libraryaddict/disguise/ReflectionManager.java +++ b/src/me/libraryaddict/disguise/ReflectionManager.java @@ -3,9 +3,13 @@ package me.libraryaddict.disguise; import java.lang.reflect.Field; import java.lang.reflect.Method; +import net.minecraft.server.v1_6_R3.World; + import org.bukkit.Art; import org.bukkit.Bukkit; +import org.bukkit.Server; import org.bukkit.Sound; +import org.bukkit.craftbukkit.v1_6_R3.CraftWorld; import org.bukkit.inventory.ItemStack; public class ReflectionManager { @@ -49,8 +53,13 @@ public class ReflectionManager { Class entityClass = getNmsClass("Entity" + entityName); Object entityObject; Object world = getWorld(); - if (entityName.equals("Human")) { - entityObject = entityClass.getConstructor(getNmsClass("World"), String.class).newInstance(world, "LibsDisguises"); + if (entityName.equals("Player")) { + Object minecraftServer = getNmsClass("MinecraftServer").getMethod("getServer").invoke(null); + Object playerinteractmanager = getNmsClass("PlayerInteractManager").getConstructor(getNmsClass("World")) + .newInstance(world); + entityObject = entityClass.getConstructor(getNmsClass("MinecraftServer"), getNmsClass("World"), String.class, + playerinteractmanager.getClass()).newInstance(minecraftServer, world, "LibsDisguises", + playerinteractmanager); } else { entityObject = entityClass.getConstructor(getNmsClass("World")).newInstance(world); } diff --git a/src/me/libraryaddict/disguise/disguisetypes/Values.java b/src/me/libraryaddict/disguise/disguisetypes/Values.java index 6acedb3b..091ac183 100644 --- a/src/me/libraryaddict/disguise/disguisetypes/Values.java +++ b/src/me/libraryaddict/disguise/disguisetypes/Values.java @@ -6,9 +6,9 @@ public class Values { private static HashMap values = new HashMap(); - /* public static HashMap getAttributesValues(DisguiseType type) { - return getValues(type).getAttributesValues(); - }*/ + /* public static HashMap getAttributesValues(DisguiseType type) { + return getValues(type).getAttributesValues(); + }*/ public static Class getEntityClass(DisguiseType type) { return getValues(type).getEntityClass(); @@ -45,7 +45,7 @@ public class Values { return values.get(type); } - // private HashMap attributesValues = new HashMap(); + // private HashMap attributesValues = new HashMap(); private Class declared; private int enumEntitySize;