aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java
diff options
context:
space:
mode:
authorLifeIsAParadox <LifeIsAParadox@users.noreply.github.com>2021-09-19 22:51:57 +0200
committerGitHub <noreply@github.com>2021-09-19 22:51:57 +0200
commitf204e0f0459ec8eb993fdc4dd419bca0504fbb8d (patch)
tree018390da69b3e2efa04d21828927ee2b65d882f7 /src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java
parent731c9430f4cf4cd5f9410cd490d724ba55fa7414 (diff)
parent8b0d4faea23ac4486795345fe0981d9cb3059059 (diff)
downloadSkyblocker-f204e0f0459ec8eb993fdc4dd419bca0504fbb8d.tar.gz
Skyblocker-f204e0f0459ec8eb993fdc4dd419bca0504fbb8d.tar.bz2
Skyblocker-f204e0f0459ec8eb993fdc4dd419bca0504fbb8d.zip
Merge pull request #11 from ExternalTime/chat-parsing-refactor
Chat parsing refactor
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java39
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