aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-08 18:17:20 +0200
committerExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-09 12:53:23 +0200
commit00a7f4e3a56255864c46a827091989a34a2a4058 (patch)
tree3acff7a278e5d5ac303348e98b469229a34ba986
parent18f37f9c1206de3c2ad66fa4da164d706b2f37e0 (diff)
downloadSkyblocker-00a7f4e3a56255864c46a827091989a34a2a4058.tar.gz
Skyblocker-00a7f4e3a56255864c46a827091989a34a2a4058.tar.bz2
Skyblocker-00a7f4e3a56255864c46a827091989a34a2a4058.zip
Added simple spam filter
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java1
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java13
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json3
3 files changed, 16 insertions, 1 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index 0bda79d6..48fefa24 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -66,6 +66,7 @@ public class SkyblockerConfig implements ConfigData {
public boolean hideAOTE = false;
public boolean hideImplosion = false;
public boolean hideMoltenWave = false;
+ public boolean hideAds = false;
}
public static void init() {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java
index 3b80a9af..00f2dfb6 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java
@@ -2,6 +2,7 @@ package me.xmrvizzy.skyblocker.skyblock;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -11,6 +12,8 @@ public class ChatFilter {
private static final Pattern aote;
private static final Pattern implosion;
private static final Pattern moltenWave;
+ private static final Pattern playerMessage;
+ private static final Pattern adverts;
public boolean shouldFilter(String message) {
SkyblockerConfig.Messages settings = SkyblockerConfig.get().messages;
@@ -28,6 +31,14 @@ public class ChatFilter {
if (settings.hideMoltenWave && moltenWave.matcher(message).matches())
return true;
+
+ if (settings.hideAds) {
+ Matcher m = playerMessage.matcher(message);
+ if(m.matches() && adverts.matcher(m.group(2)).find()) {
+ System.out.println(m.group(2));
+ return true;
+ }
+ }
return false;
}
@@ -38,5 +49,7 @@ public class ChatFilter {
aote = Pattern.compile("^There are blocks in the way!$");
implosion = Pattern.compile("^Your Implosion hit " + number + " enem(?:y|ies) for " + number + " damage\\.$");
moltenWave = Pattern.compile("^Your Molten Wave hit " + number + " enemy(?:y|ies) for " + number + " damage\\.$");
+ playerMessage = Pattern.compile("^§[67ab](?:\\[(?:MVP|VIP)(?:§[0-9a-f]\\+{1,2}§[6ab])?] )?([a-zA-Z0-9_]{2,16})§[7f]: (.*)$");
+ adverts = Pattern.compile("(?i:^(?:i(?:m|'m| am)? |(?:is )?any(?: ?one|1) )?(?:buy|sell|lowball|trade?)(?:ing)?\\W|(?:\\W|^)(?:on|in|check|at) my ah(?:\\W|$)|(.)\\1{7,})");
}
}
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index b716764b..14882563 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -23,5 +23,6 @@
"text.autoconfig.skyblocker.option.messages.hideHeal": "Hide Heal Messages",
"text.autoconfig.skyblocker.option.messages.hideAOTE": "Hide AOTE Messages",
"text.autoconfig.skyblocker.option.messages.hideImplosion": "Hide Implosion Message",
- "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Hide Molten Wave Message"
+ "text.autoconfig.skyblocker.option.messages.hideMoltenWave": "Hide Molten Wave Message",
+ "text.autoconfig.skyblocker.option.messages.hideAds": "Hide Ads From Public Chat"
} \ No newline at end of file