From 27d069b149992b37acb24b46ff9d88cb564777be Mon Sep 17 00:00:00 2001 From: Zeshan Aslam Date: Tue, 16 May 2017 15:10:18 -0400 Subject: [PATCH] Added support for pre 1.12 version --- .../zeshanaslam/actionhealth/HealthUtil.class | Bin 8090 -> 8603 bytes .../zeshanaslam/actionhealth/PreAction.class | Bin 0 -> 1762 bytes .../zeshanaslam/actionhealth/HealthUtil.java | 59 ++++++++++++------ .../zeshanaslam/actionhealth/PreAction.java | 16 +++++ 4 files changed, 55 insertions(+), 20 deletions(-) create mode 100644 out/production/ActionHealth/com/zeshanaslam/actionhealth/PreAction.class create mode 100644 src/com/zeshanaslam/actionhealth/PreAction.java diff --git a/out/production/ActionHealth/com/zeshanaslam/actionhealth/HealthUtil.class b/out/production/ActionHealth/com/zeshanaslam/actionhealth/HealthUtil.class index f1daf1d0a437a65d0b8f43c64deb3e345e1e5aff..d5b436ed75ed08c6d1ae5470648547187af7148d 100644 GIT binary patch delta 3702 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 diff --git a/out/production/ActionHealth/com/zeshanaslam/actionhealth/PreAction.class b/out/production/ActionHealth/com/zeshanaslam/actionhealth/PreAction.class new file mode 100644 index 0000000000000000000000000000000000000000..8353b9f0ca0d10cf530591487dc9653c6ff20b64 GIT binary patch literal 1762 zcmb7FYflqF6g^WaOPA#-KEM|i#1<_}@l92P%1g^5Vodl%rrWVy+3q&GQz96Di@!l* zz-VIp?2j_u**0ogY_&~yIyd*;bMLulX21XV{1w1WZ0H!kn1*p35sY==idrYSa8<1d z9Z5`TxE8~8q;$kErNPu;U^<30W^~-ZO%1m++-B&!Z@ad9$Y3UNo?kTc)!kiNn!=T~ z+&4EJzAyYt?iJtTro-K$xg~wuEoPE07@}FPAQ<{`wky`F<-G8p^Sncr!JKDt=LPp| zwXYkavSbGgiJaw?%>xmXxXS~FmrZU-+jC2TJF;YM`eHuZXQ;GFh|Vzb_sSTwvIqiR z3}KtfWazN+7Q;-=71AtIp_b2IN;44tp771R^iFza=ULiZ&6c=a;DN|`<%;K0_k=%C z;nuE@ii3@+R2~fJHiy9}wo?#31;2?) z@mj`bN8<+W;vPdJ{?@=OG8!Hjc!YTxUF+tWYSOS^AdANee38icW9}h6bq)Mtr!I!9 zqOPV014~%euwq~pPc%F=ki#0o#J|m!q5pTk8~InlB4#@hN>iP@QW0)}A(c2rbWNr@ zO+<2+^lH*%7)m6Y9Eq)UhPl>6HLGA;O?^v{kRAI#jia~GV63{X@UspN0zvX-oMGwM z(*GBldP=p9QKhWa#Q%K1LfVQg&#x`+tgbI@kS5v)wIP_$3W+u$&Gcm2L^Oh^3CD^; zu5h=Y4#N~ps&$Wx;XPEph8QOQ-J3*KyFaoXO(?um7^d66)qs9S5G_-!AsZv;#0Dhb z+L>cWwj;IX7~ZGTt&y7P$7S@>dq90id32ah(sPJ*?-0caS|3avfqg+_`v@I_(LDTjh~8oH?R!rNA~;3Q(_yl1N@`#fJxHM! z_t8go^)3p5a0X{-N01oC2$iA!ox^#`Fp3NGy@(Eq>&GS9N6C7bJR*o=j#i!gla%ox GVm|@>S^Rha literal 0 HcmV?d00001 diff --git a/src/com/zeshanaslam/actionhealth/HealthUtil.java b/src/com/zeshanaslam/actionhealth/HealthUtil.java index 2bbc94e..34c10c6 100644 --- a/src/com/zeshanaslam/actionhealth/HealthUtil.java +++ b/src/com/zeshanaslam/actionhealth/HealthUtil.java @@ -73,6 +73,8 @@ public class HealthUtil { } output = output.replace("{displayname}", displayName); + } else { + output = output.replace("{displayname}", name); } if (output.contains("{usestyle}")) { @@ -127,33 +129,50 @@ public class HealthUtil { message = ChatColor.translateAlternateColorCodes('&', message); try { - Class c1 = Class.forName("org.bukkit.craftbukkit." + plugin.settingsManager.mcVersion + ".entity.CraftPlayer"); - Object p = c1.cast(player); - Object ppoc; - Class c4 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".PacketPlayOutChat"); - Class c5 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".Packet"); + if (plugin.settingsManager.mcVersion.equals("v1_12_R1")) { + new PreAction(player, message); + } else if (!(plugin.settingsManager.mcVersion.equalsIgnoreCase("v1_8_R1") || (plugin.settingsManager.mcVersion.contains("v1_7_")))) { + Class c1 = Class.forName("org.bukkit.craftbukkit." + plugin.settingsManager.mcVersion + ".entity.CraftPlayer"); + Object p = c1.cast(player); + Object ppoc; + Class c4 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".PacketPlayOutChat"); + Class c5 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".Packet"); + + Class c2 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".ChatComponentText"); + Class c3 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".IChatBaseComponent"); + Object o = c2.getConstructor(new Class[]{String.class}).newInstance(message); + ppoc = c4.getConstructor(new Class[]{c3, byte.class}).newInstance(o, (byte) 2); + + Method getHandle = c1.getDeclaredMethod("getHandle"); + Object handle = getHandle.invoke(p); + + Field fieldConnection = handle.getClass().getDeclaredField("playerConnection"); + Object playerConnection = fieldConnection.get(handle); + + Method sendPacket = playerConnection.getClass().getDeclaredMethod("sendPacket", c5); + sendPacket.invoke(playerConnection, ppoc); + } else { + Class c1 = Class.forName("org.bukkit.craftbukkit." + plugin.settingsManager.mcVersion + ".entity.CraftPlayer"); + Object p = c1.cast(player); + Object ppoc; + Class c4 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".PacketPlayOutChat"); + Class c5 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".Packet"); - if (plugin.settingsManager.useOldMethods) { Class c2 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".ChatSerializer"); Class c3 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".IChatBaseComponent"); Method m3 = c2.getDeclaredMethod("a", String.class); Object cbc = c3.cast(m3.invoke(c2, "{\"text\": \"" + message + "\"}")); ppoc = c4.getConstructor(new Class[]{c3, byte.class}).newInstance(cbc, (byte) 2); - } else { - Class c2 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".ChatComponentText"); - Class c3 = Class.forName("net.minecraft.server." + plugin.settingsManager.mcVersion + ".IChatBaseComponent"); - Object o = c2.getConstructor(new Class[]{String.class}).newInstance(message); - ppoc = c4.getConstructor(new Class[]{c3, byte.class}).newInstance(o, (byte) 2); + + Method getHandle = c1.getDeclaredMethod("getHandle"); + Object handle = getHandle.invoke(p); + + Field fieldConnection = handle.getClass().getDeclaredField("playerConnection"); + Object playerConnection = fieldConnection.get(handle); + + Method sendPacket = playerConnection.getClass().getDeclaredMethod("sendPacket", c5); + sendPacket.invoke(playerConnection, ppoc); } - - Method getHandle = c1.getDeclaredMethod("getHandle"); - Object handle = getHandle.invoke(p); - - Field fieldConnection = handle.getClass().getDeclaredField("playerConnection"); - Object playerConnection = fieldConnection.get(handle); - - Method sendPacket = playerConnection.getClass().getDeclaredMethod("sendPacket", c5); - sendPacket.invoke(playerConnection, ppoc); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/com/zeshanaslam/actionhealth/PreAction.java b/src/com/zeshanaslam/actionhealth/PreAction.java new file mode 100644 index 0000000..2cb8747 --- /dev/null +++ b/src/com/zeshanaslam/actionhealth/PreAction.java @@ -0,0 +1,16 @@ +package com.zeshanaslam.actionhealth; + +import net.minecraft.server.v1_12_R1.ChatMessageType; +import net.minecraft.server.v1_12_R1.IChatBaseComponent; +import net.minecraft.server.v1_12_R1.PacketPlayOutChat; +import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer; +import org.bukkit.entity.Player; + +public class PreAction { + + public PreAction(Player player, String message) { + IChatBaseComponent cbc = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + message + "\"}"); + PacketPlayOutChat packetPlayOutChat = new PacketPlayOutChat(cbc, ChatMessageType.GAME_INFO); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packetPlayOutChat); + } +}