diff --git a/src/main/java/net/wurstclient/hacks/ChatTranslatorHack.java b/src/main/java/net/wurstclient/hacks/ChatTranslatorHack.java index 9e0ac7bf..f72e9931 100644 --- a/src/main/java/net/wurstclient/hacks/ChatTranslatorHack.java +++ b/src/main/java/net/wurstclient/hacks/ChatTranslatorHack.java @@ -7,6 +7,8 @@ */ package net.wurstclient.hacks; +import java.util.regex.Pattern; + import net.wurstclient.Category; import net.wurstclient.SearchTags; import net.wurstclient.events.ChatInputListener; @@ -80,10 +82,15 @@ public final class ChatTranslatorHack extends Hack implements ChatInputListener private boolean isOwnMessage(String message) { - String playerName = MC.getSession().getUsername(); - return message.startsWith("<" + playerName + ">") - || message.startsWith("[" + playerName + "]") - || message.startsWith(playerName + ":"); + // Escape username for regex + String playerName = Pattern.quote(MC.getSession().getUsername()); + + // Allow up to 2 ranks before the username + String rankPattern = "(?:\\[[^\\]]+\\] ?){0,2}"; + + // Build regex and check if it matches + String regex = "^" + rankPattern + "[<\\[]?" + playerName + "[>\\]:]"; + return Pattern.compile(regex).matcher(message).find(); } private void showTranslated(String message, Language fromLang,