mirror of
https://github.com/Wurst-Imperium/Wurst7.git
synced 2024-09-19 17:02:13 +02:00
Cache own message pattern for better performance
This commit is contained in:
parent
0736af357b
commit
2ee6402c1a
@ -40,6 +40,9 @@ public final class ChatTranslatorHack extends Hack implements ChatInputListener
|
||||
+ " might not work correctly on some servers.",
|
||||
true);
|
||||
|
||||
private Pattern ownMessagePattern;
|
||||
private String lastUsername;
|
||||
|
||||
public ChatTranslatorHack()
|
||||
{
|
||||
super("ChatTranslator");
|
||||
@ -82,15 +85,22 @@ public final class ChatTranslatorHack extends Hack implements ChatInputListener
|
||||
|
||||
private boolean isOwnMessage(String message)
|
||||
{
|
||||
// Escape username for regex
|
||||
String playerName = Pattern.quote(MC.getSession().getUsername());
|
||||
updateOwnMessagePattern();
|
||||
return ownMessagePattern.matcher(message).find();
|
||||
}
|
||||
|
||||
private void updateOwnMessagePattern()
|
||||
{
|
||||
String username = MC.getSession().getUsername();
|
||||
if(username.equals(lastUsername))
|
||||
return;
|
||||
|
||||
// Allow up to 2 ranks before the username
|
||||
String rankPattern = "(?:\\[[^\\]]+\\] ?){0,2}";
|
||||
String namePattern = Pattern.quote(username);
|
||||
String regex = "^" + rankPattern + "[<\\[]?" + namePattern + "[>\\]:]";
|
||||
|
||||
// Build regex and check if it matches
|
||||
String regex = "^" + rankPattern + "[<\\[]?" + playerName + "[>\\]:]";
|
||||
return Pattern.compile(regex).matcher(message).find();
|
||||
ownMessagePattern = Pattern.compile(regex);
|
||||
lastUsername = username;
|
||||
}
|
||||
|
||||
private void showTranslated(String message, Language fromLang,
|
||||
|
Loading…
Reference in New Issue
Block a user