diff --git a/src/main/java/me/rayzr522/jsonmessage/compat/CompatManager.java b/src/main/java/me/rayzr522/jsonmessage/compat/CompatManager.java index d664d9d..8e5746a 100644 --- a/src/main/java/me/rayzr522/jsonmessage/compat/CompatManager.java +++ b/src/main/java/me/rayzr522/jsonmessage/compat/CompatManager.java @@ -28,7 +28,7 @@ public CompatManager() { .addImplementation(12, 15, ChatPacketImpl12To15::new) .addImplementation(16, 16, ChatPacketImpl16::new) .addImplementation(17, 18, ChatPacketImpl17To18::new) - .addImplementation(17, Integer.MAX_VALUE, ChatPacketImpl19ToFuture::new) + .addImplementation(19, Integer.MAX_VALUE, ChatPacketImpl19ToFuture::new) .getImplementation(version) .orElseThrow(() -> new IllegalStateException( "Missing ChatPacket implementation for major version: " + version diff --git a/src/main/java/me/rayzr522/jsonmessage/compat/impl/ChatComponentImpl19ToFuture.java b/src/main/java/me/rayzr522/jsonmessage/compat/impl/ChatComponentImpl19ToFuture.java index 5b907e4..a6404f1 100644 --- a/src/main/java/me/rayzr522/jsonmessage/compat/impl/ChatComponentImpl19ToFuture.java +++ b/src/main/java/me/rayzr522/jsonmessage/compat/impl/ChatComponentImpl19ToFuture.java @@ -19,7 +19,7 @@ public ChatComponentImpl19ToFuture() throws ClassNotFoundException, NoSuchMethod Class IChatBaseComponent_ChatSerializer = ReflectionHelper.getClass("net.minecraft.network.chat.IChatBaseComponent$ChatSerializer"); fromText = MethodHandles.lookup().unreflect(IChatBaseComponent.getMethod("b", String.class)); - fromJson = MethodHandles.lookup().unreflect(IChatBaseComponent_ChatSerializer.getMethod("a", JsonElement.class, Type.class, JsonDeserializationContext.class)); + fromJson = MethodHandles.lookup().unreflect(IChatBaseComponent_ChatSerializer.getMethod("a", String.class)); } @Override @@ -35,7 +35,7 @@ public Object createComponent(String message) { @Override public Object fromJson(JsonObject json) { try { - return fromJson.invoke(json, null, null); + return fromJson.invoke(json.toString()); } catch (Throwable e) { e.printStackTrace(); return null; diff --git a/src/main/java/me/rayzr522/jsonmessage/compat/impl/ChatPacketImpl19ToFuture.java b/src/main/java/me/rayzr522/jsonmessage/compat/impl/ChatPacketImpl19ToFuture.java index e8819f5..8b9b716 100644 --- a/src/main/java/me/rayzr522/jsonmessage/compat/impl/ChatPacketImpl19ToFuture.java +++ b/src/main/java/me/rayzr522/jsonmessage/compat/impl/ChatPacketImpl19ToFuture.java @@ -10,12 +10,12 @@ public class ChatPacketImpl19ToFuture implements ChatPacketCompat { private final Constructor chatPacketContructor; - private static Object enumChatMessageTypeMessage; - private static Object enumChatMessageTypeActionbar; + private static int enumChatMessageTypeMessage; + private static int enumChatMessageTypeActionbar; public ChatPacketImpl19ToFuture() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException { Class NMS_I_CHAT_BASE_COMPONENT = ReflectionHelper.getClass("net.minecraft.network.chat.IChatBaseComponent"); - Class NMS_CHAT_MESSAGE_TYPE = ReflectionHelper.getClass("net.minecraft.network.chat.ChatMessageType"); + // Class NMS_CHAT_MESSAGE_TYPE = ReflectionHelper.getClass("net.minecraft.network.chat.ChatMessageType"); // TODO: looks like it might need to use ClientboundPlayerChatPacket instead? // here's the signature, unsure how to use it as of yet tho: @@ -23,27 +23,25 @@ public ChatPacketImpl19ToFuture() throws ClassNotFoundException, NoSuchMethodExc // this.a = playerChatMessage; // this.b = boundNetwork; // } - Class NMS_PACKET_PLAY_OUT_CHAT = ReflectionHelper.getClass("net.minecraft.network.protocol.game.PacketPlayOutChat"); + Class NMS_PACKET_PLAY_OUT_CHAT = ReflectionHelper.getClass("net.minecraft.network.protocol.game.ClientboundSystemChatPacket"); chatPacketContructor = NMS_PACKET_PLAY_OUT_CHAT.getConstructor( NMS_I_CHAT_BASE_COMPONENT, - NMS_CHAT_MESSAGE_TYPE, - UUID.class + int.class ); - Method getChatMessageType = NMS_CHAT_MESSAGE_TYPE.getMethod("a", byte.class); + // Method getChatMessageType = NMS_CHAT_MESSAGE_TYPE.getMethod("a", byte.class); - enumChatMessageTypeMessage = getChatMessageType.invoke(null, (byte) 1); - enumChatMessageTypeActionbar = getChatMessageType.invoke(null, (byte) 2); + enumChatMessageTypeMessage = 0; // getChatMessageType.invoke(null, (byte) 1); + enumChatMessageTypeActionbar = 0; // getChatMessageType.invoke(null, (byte) 2); } - private Object createPacket(Object chatComponent, Object type) { + private Object createPacket(Object chatComponent, int type) { try { return chatPacketContructor.newInstance( chatComponent, - type, - UUID.randomUUID() + type ); } catch (Exception e) { e.printStackTrace();