From 4dac0b84fcefd7d180552383dc8eb1ccb60d3c62 Mon Sep 17 00:00:00 2001 From: Owain van Brakel Date: Wed, 9 Mar 2022 08:56:20 +0100 Subject: [PATCH] mixins: Fix messages for GIM --- .../net/runelite/mixins/RSClientMixin.java | 48 +++++++++++++++---- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index a87bea6a8d..325d74f697 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -597,7 +597,22 @@ public abstract class RSClientMixin implements RSClient public MessageNode addChatMessage(ChatMessageType type, String name, String message, String sender, boolean postEvent) { assert this.isClientThread() : "addChatMessage must be called on client thread"; - copy$addChatMessage(type.getType(), name, message, sender); + + ChatMessageType tmpType = type; + String tmpMessage = message; + + if (type == ChatMessageType.CLAN_GIM_CHAT) + { + tmpType = ChatMessageType.CLAN_CHAT; + tmpMessage = "|" + message; + } + else if (type == ChatMessageType.CLAN_GIM_MESSAGE) + { + tmpType = ChatMessageType.CLAN_MESSAGE; + tmpMessage = "|" + message; + } + + copy$addChatMessage(tmpType.getType(), name, tmpMessage, sender); Logger logger = client.getLogger(); if (logger.isDebugEnabled()) @@ -1776,20 +1791,33 @@ public abstract class RSClientMixin implements RSClient { copy$addChatMessage(type, name, message, sender); - Logger logger = client.getLogger(); - if (logger.isDebugEnabled()) - { - ChatMessageType msgType = ChatMessageType.of(type); - logger.debug("Chat message type {}: {}", msgType == ChatMessageType.UNKNOWN ? String.valueOf(type) : msgType.name(), message); - } - // Get the message node which was added @SuppressWarnings("unchecked") Map chatLineMap = client.getChatLineMap(); RSChatChannel chatLineBuffer = chatLineMap.get(type); MessageNode messageNode = chatLineBuffer.getLines()[0]; - final ChatMessageType chatMessageType = ChatMessageType.of(type); - final ChatMessage chatMessage = new ChatMessage(messageNode, chatMessageType, name, message, sender, messageNode.getTimestamp()); + ChatMessageType tmpType = ChatMessageType.of(type); + + if (tmpType == ChatMessageType.CLAN_CHAT && message != null && message.startsWith("|")) + { + tmpType = ChatMessageType.CLAN_GIM_CHAT; + message = message.substring(1); + } + + if (tmpType == ChatMessageType.CLAN_MESSAGE && message != null && message.startsWith("|")) + { + tmpType = ChatMessageType.CLAN_GIM_MESSAGE; + message = message.substring(1); + } + + Logger logger = client.getLogger(); + if (logger.isDebugEnabled()) + { + ChatMessageType msgType = ChatMessageType.of(type); + logger.debug("Chat message type {}: {}", msgType == ChatMessageType.UNKNOWN ? String.valueOf(type) : tmpType.name(), message); + } + + final ChatMessage chatMessage = new ChatMessage(messageNode, tmpType, name, message, sender, messageNode.getTimestamp()); client.getCallbacks().post(chatMessage); }