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.",
|
+ " might not work correctly on some servers.",
|
||||||
true);
|
true);
|
||||||
|
|
||||||
|
private Pattern ownMessagePattern;
|
||||||
|
private String lastUsername;
|
||||||
|
|
||||||
public ChatTranslatorHack()
|
public ChatTranslatorHack()
|
||||||
{
|
{
|
||||||
super("ChatTranslator");
|
super("ChatTranslator");
|
||||||
@ -82,15 +85,22 @@ public final class ChatTranslatorHack extends Hack implements ChatInputListener
|
|||||||
|
|
||||||
private boolean isOwnMessage(String message)
|
private boolean isOwnMessage(String message)
|
||||||
{
|
{
|
||||||
// Escape username for regex
|
updateOwnMessagePattern();
|
||||||
String playerName = Pattern.quote(MC.getSession().getUsername());
|
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 rankPattern = "(?:\\[[^\\]]+\\] ?){0,2}";
|
||||||
|
String namePattern = Pattern.quote(username);
|
||||||
|
String regex = "^" + rankPattern + "[<\\[]?" + namePattern + "[>\\]:]";
|
||||||
|
|
||||||
// Build regex and check if it matches
|
ownMessagePattern = Pattern.compile(regex);
|
||||||
String regex = "^" + rankPattern + "[<\\[]?" + playerName + "[>\\]:]";
|
lastUsername = username;
|
||||||
return Pattern.compile(regex).matcher(message).find();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showTranslated(String message, Language fromLang,
|
private void showTranslated(String message, Language fromLang,
|
||||||
|
Loading…
Reference in New Issue
Block a user