From bc565c0e0bfbc5e87af8191519980a440da5bfa4 Mon Sep 17 00:00:00 2001 From: ExternalTime <84183548+ExternalTime@users.noreply.github.com> Date: Sat, 18 Sep 2021 19:58:41 +0200 Subject: Created an interface for listening to chat messages --- .../me/xmrvizzy/skyblocker/chat/ChatListener.java | 17 ++++++++++++++++ .../me/xmrvizzy/skyblocker/chat/ChatParser.java | 23 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java (limited to 'src/main/java/me/xmrvizzy/skyblocker/chat') 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 -- cgit