From 8c2261798ead32a8ba4aa5d87dde5716311f141a Mon Sep 17 00:00:00 2001 From: libraryaddict Date: Sat, 12 Apr 2014 16:22:47 +1200 Subject: [PATCH] Allow disguises in 1.7.6 - 1.7.8 but no skins for players!! --- .../disguise/utilities/DisguiseUtilities.java | 14 +------------- .../disguise/utilities/PacketsManager.java | 7 ++----- .../disguise/utilities/ReflectionManager.java | 10 ++++++++-- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/me/libraryaddict/disguise/utilities/DisguiseUtilities.java b/src/me/libraryaddict/disguise/utilities/DisguiseUtilities.java index 6defebda..24c1c70b 100644 --- a/src/me/libraryaddict/disguise/utilities/DisguiseUtilities.java +++ b/src/me/libraryaddict/disguise/utilities/DisguiseUtilities.java @@ -299,20 +299,8 @@ public class DisguiseUtilities { return selfDisguisesIds; } - public static UUID getUUID(final Disguise disguise, final String playerName) { + public static UUID getUUID() { if (LibVersion.getGameVersion() == LibVersion.V1_7) { - Player p = Bukkit.getPlayerExact(playerName); - if (p != null) { - try { - Field field = ReflectionManager.getNmsClass("PlayerConnection").getDeclaredField("processedDisconnect"); - field.setAccessible(true); - if (!field.getBoolean(ReflectionManager.getNmsClass("EntityPlayer").getField("playerConnection") - .get(p.getClass().getDeclaredMethod("getHandle").invoke(p)))) - return p.getUniqueId(); - } catch (Exception e) { - e.printStackTrace(); - } - } EthernetAddress addr = EthernetAddress.fromInterface(); TimeBasedGenerator uuidGenerator = Generators.timeBasedGenerator(addr); return uuidGenerator.generate(); diff --git a/src/me/libraryaddict/disguise/utilities/PacketsManager.java b/src/me/libraryaddict/disguise/utilities/PacketsManager.java index ba59dbd1..9478c315 100644 --- a/src/me/libraryaddict/disguise/utilities/PacketsManager.java +++ b/src/me/libraryaddict/disguise/utilities/PacketsManager.java @@ -200,11 +200,8 @@ public class PacketsManager { stringMods.write(i, ((PlayerDisguise) disguise).getName()); } } else { - spawnPackets[0].getModifier().write( - 1, - ReflectionManager.getGameProfile( - DisguiseUtilities.getUUID(disguise, ((PlayerDisguise) disguise).getName()), - ((PlayerDisguise) disguise).getName())); + spawnPackets[0].getModifier().write(1, + ReflectionManager.getGameProfile(DisguiseUtilities.getUUID(), ((PlayerDisguise) disguise).getName())); } StructureModifier intMods = spawnPackets[0].getIntegers(); intMods.write(0, disguisedEntity.getEntityId()); diff --git a/src/me/libraryaddict/disguise/utilities/ReflectionManager.java b/src/me/libraryaddict/disguise/utilities/ReflectionManager.java index d3e09278..89725369 100644 --- a/src/me/libraryaddict/disguise/utilities/ReflectionManager.java +++ b/src/me/libraryaddict/disguise/utilities/ReflectionManager.java @@ -208,8 +208,14 @@ public class ReflectionManager { public static Object getGameProfile(UUID uuid, String playerName) { try { - return Class.forName("net.minecraft.util.com.mojang.authlib.GameProfile").getConstructor(String.class, String.class) - .newInstance(uuid != null ? uuid.toString() : "", playerName); + try { + return Class.forName("net.minecraft.util.com.mojang.authlib.GameProfile") + .getConstructor(UUID.class, String.class) + .newInstance(uuid != null ? uuid : DisguiseUtilities.getUUID(), playerName); + } catch (NoSuchMethodException ex) { + return Class.forName("net.minecraft.util.com.mojang.authlib.GameProfile") + .getConstructor(String.class, String.class).newInstance(uuid != null ? uuid.toString() : "", playerName); + } } catch (Exception ex) { ex.printStackTrace(); }