aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/chat
diff options
context:
space:
mode:
authorExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-18 19:58:41 +0200
committerExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-18 21:37:23 +0200
commitbc565c0e0bfbc5e87af8191519980a440da5bfa4 (patch)
treea6c1ab935688d1b2f9d8050f69fafb704d8a7211 /src/main/java/me/xmrvizzy/skyblocker/chat
parent731c9430f4cf4cd5f9410cd490d724ba55fa7414 (diff)
downloadSkyblocker-bc565c0e0bfbc5e87af8191519980a440da5bfa4.tar.gz
Skyblocker-bc565c0e0bfbc5e87af8191519980a440da5bfa4.tar.bz2
Skyblocker-bc565c0e0bfbc5e87af8191519980a440da5bfa4.zip
Created an interface for listening to chat messages
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/chat')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java17
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java23
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