From 3c69d43c6a670da7584378db91078d6a6920610e Mon Sep 17 00:00:00 2001 From: wmp71 <100664331+wmp71@users.noreply.github.com> Date: Fri, 28 Oct 2022 20:33:40 +0900 Subject: [PATCH 1/2] fix typo --- src/main/java/me/rayzr522/jsonmessage/compat/CompatManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From c9aa42bb9c16e9307b50f20370a70f7f44b5b003 Mon Sep 17 00:00:00 2001 From: wmp71 <100664331+wmp71@users.noreply.github.com> Date: Sat, 29 Oct 2022 08:50:23 +0900 Subject: [PATCH 2/2] fix bug --- .../impl/ChatComponentImpl19ToFuture.java | 4 ++-- .../compat/impl/ChatPacketImpl19ToFuture.java | 22 +++++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) 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();