diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java index e275efc076..04d3e9fc8d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatnotifications/ChatNotificationsPlugin.java @@ -243,12 +243,24 @@ public class ChatNotificationsPlugin extends Plugin Matcher matcher = usernameMatcher.matcher(message); if (matcher.find()) { - final int start = matcher.start(); final String username = client.getLocalPlayer().getName(); - final String closeColor = MoreObjects.firstNonNull(getLastColor(message.substring(0, start)), "'); - final String replacement = "" + username + "" + closeColor; - messageNode.setValue(matcher.replaceAll(replacement)); + StringBuffer stringBuffer = new StringBuffer(); + do + { + final int start = matcher.start(); + final String closeColor = MoreObjects.firstNonNull( + getLastColor(message.substring(0, start)), + "'); + final String replacement = "" + username + "" + closeColor; + matcher.appendReplacement(stringBuffer, replacement); + } + while (matcher.find()); + + matcher.appendTail(stringBuffer); + + messageNode.setValue(stringBuffer.toString()); update = true; + if (config.notifyOnOwnName() && (chatMessage.getType() == ChatMessageType.PUBLICCHAT || chatMessage.getType() == ChatMessageType.PRIVATECHAT || chatMessage.getType() == ChatMessageType.FRIENDSCHAT