diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/chat')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java | 17 | ||||
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java | 23 |
2 files changed, 40 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java new file mode 100644 index 00000000..349229d9 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java @@ -0,0 +1,17 @@ +package me.xmrvizzy.skyblocker.chat; + +import java.util.regex.Pattern; + +public abstract class ChatListener { + Pattern pattern; + public ChatListener(String pattern) { + this.pattern = Pattern.compile(pattern); + } + public Pattern getPattern() { + return pattern; + } + + public abstract boolean isEnabled(); + //Returns whether message should get filtered + public abstract boolean onMessage(String[] groups); +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java new file mode 100644 index 00000000..5c431678 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java @@ -0,0 +1,23 @@ +package me.xmrvizzy.skyblocker.chat; + +import java.util.regex.Matcher; + +public class ChatParser { + private final ChatListener[] listeners = new ChatListener[] { + }; + + public boolean shouldFilter(String message) { + for (ChatListener listener : listeners) { + if(listener.isEnabled()) { + Matcher m = listener.getPattern().matcher(message); + if (m.matches()) { + String[] groups = new String[m.groupCount() + 1]; + for (int i = 0; i < groups.length; i++) + groups[i] = m.group(i); + return listener.onMessage(groups); + } + } + } + return false; + } +}
\ No newline at end of file |