mirror of
https://github.com/zeshan321/ActionHealth.git
synced 2025-03-10 13:49:07 +01:00
Added support for pre 1.12 version
This commit is contained in:
parent
7b0dab4643
commit
27d069b149
Binary file not shown.
Binary file not shown.
@ -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();
|
||||
}
|
||||
|
16
src/com/zeshanaslam/actionhealth/PreAction.java
Normal file
16
src/com/zeshanaslam/actionhealth/PreAction.java
Normal file
@ -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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user