diff --git a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java index 91d7c99683..c212b8fee5 100644 --- a/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java +++ b/runelite-client/src/main/java/net/runelite/client/chat/ChatMessageManager.java @@ -164,9 +164,16 @@ public class ChatMessageManager stringStack[size - 4] = ColorUtil.wrapWithColorTag(channel, channelColor); } + String prefix = ""; + if (chatMessageType == ChatMessageType.CLAN_GIM_CHAT || chatMessageType == ChatMessageType.CLAN_GIM_MESSAGE) + { + message = message.substring(1); // remove | + prefix = "|"; + } + if (messageNode.getRuneLiteFormatMessage() != null) { - stringStack[size - 2] = message = formatRuneLiteMessage(messageNode.getRuneLiteFormatMessage(), + message = formatRuneLiteMessage(messageNode.getRuneLiteFormatMessage(), chatMessageType, splitpmbox); } @@ -178,20 +185,15 @@ public class ChatMessageManager continue; } - String prefix = ""; - if (chatMessageType == ChatMessageType.CLAN_GIM_CHAT || chatMessageType == ChatMessageType.CLAN_GIM_MESSAGE) - { - message = message.substring(1); // remove | - prefix = "|"; - } - // Replace tags in the message with the new color so embedded won't reset the color final Color color = chatColor.getColor(); - stringStack[size - 2] = prefix + ColorUtil.wrapWithColorTag( + message = ColorUtil.wrapWithColorTag( message.replace(ColorUtil.CLOSING_COLOR_TAG, ColorUtil.colorTag(color)), color); break; } + + stringStack[size - 2] = prefix + message; } @Subscribe diff --git a/runelite-client/src/test/java/net/runelite/client/chat/ChatMessageManagerTest.java b/runelite-client/src/test/java/net/runelite/client/chat/ChatMessageManagerTest.java index 5f5d2d59a9..e2958e8ba9 100644 --- a/runelite-client/src/test/java/net/runelite/client/chat/ChatMessageManagerTest.java +++ b/runelite-client/src/test/java/net/runelite/client/chat/ChatMessageManagerTest.java @@ -69,7 +69,7 @@ public class ChatMessageManagerTest Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this); } - private void setupVm(ChatMessageType type, String name, String message) + private MessageNode setupVm(ChatMessageType type, String name, String message) { MessageNode messageNode = mock(MessageNode.class); when(messageNode.getType()).thenReturn(type); @@ -92,6 +92,8 @@ public class ChatMessageManagerTest when(client.getStringStackSize()).thenReturn(sstack.length); when(client.getIntStack()).thenReturn(istack); when(client.getIntStackSize()).thenReturn(istack.length); + + return messageNode; } @Test @@ -187,4 +189,24 @@ public class ChatMessageManagerTest assertEquals("