aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java38
1 files changed, 12 insertions, 26 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java
index 16cb5fc3..cf13e26e 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java
@@ -1,15 +1,17 @@
package me.xmrvizzy.skyblocker.chat.filters;
-import me.xmrvizzy.skyblocker.chat.ChatListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import java.util.regex.Pattern;
public class AdFilter extends ChatFilter {
- private static final String regex;
-
+ private static final Pattern[] AD_FILTERS = new Pattern[]{
+ Pattern.compile("^(?:i(?:m|'m| am)? |(?:is )?any(?: ?one|1) )?(?:buy|sell|lowball|trade?)(?:ing)?(?:\\W|$)", Pattern.CASE_INSENSITIVE),
+ Pattern.compile("(.)\\1{7,}"),
+ Pattern.compile("\\W(?:on|in|check|at) my (?:ah|bin)(?:\\W|$)", Pattern.CASE_INSENSITIVE),
+ };
public AdFilter() {
- super(regex);
+ super("^§[67ab](?:\\[(?:MVP|VIP)(?:§[0-9a-f]\\+{1,2}§[6ab])?] )?([a-zA-Z0-9_]{2,16})§[7f]: (.*)$");
}
@Override
@@ -17,27 +19,11 @@ public class AdFilter extends ChatFilter {
return SkyblockerConfig.get().messages.hideAds;
}
- static {
- StringBuilder sb = new StringBuilder("^§[67ab](?:\\[(?:MVP|VIP)(?:§[0-9a-f]\\+{1,2}§[6ab])?] )?([a-zA-Z0-9_]{2,16})§[7f]: ");
- String[] inexact = new String[] {
- "(?:on|in|check|at) my ah",
- "(?>(.)\\2{7,})",
- };
- String[] exact = new String[]{
- "(?:i(?:m|'m| am)? |(?:is )?any(?: ?one|1) )?(?:buy|sell|lowball|trade?)(?:ing)?(?:\\W|).*",
- };
- sb.append("(?i:.*(?:");
- sb.append(inexact[0]);
- for(int i = 1; i < inexact.length; i++) {
- sb.append("|");
- sb.append(inexact[i]);
- }
- sb.append(").*");
- for (String s : exact) {
- sb.append("|");
- sb.append(s);
- }
- sb.append(")$");
- regex = sb.toString();
+ @Override
+ public boolean onMessage(String[] groups) {
+ for(Pattern adFilter : AD_FILTERS)
+ if(adFilter.matcher(groups[2]).find())
+ return true;
+ return false;
}
} \ No newline at end of file