diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java | 39 |
1 files changed, 39 insertions, 0 deletions
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..9965c7c7 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java @@ -0,0 +1,39 @@ +package me.xmrvizzy.skyblocker.chat; + +import me.xmrvizzy.skyblocker.chat.filters.*; +import me.xmrvizzy.skyblocker.skyblock.dungeon.ThreeWeirdos; +import me.xmrvizzy.skyblocker.skyblock.dungeon.Trivia; +import me.xmrvizzy.skyblocker.skyblock.dwarven.Fetchur; +import me.xmrvizzy.skyblocker.skyblock.dwarven.Puzzler; + +import java.util.regex.Matcher; + +public class ChatParser { + private final ChatListener[] listeners = new ChatListener[]{ + new ThreeWeirdos(), + new AoteFilter(), + new ImplosionFilter(), + new MoltenWaveFilter(), + new HealFilter(), + new AbilityFilter(), + new AdFilter(), + new Fetchur(), + new Puzzler(), + new Trivia(), + }; + + 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 |