aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-06 13:05:14 +0200
committerExternalTime <84183548+ExternalTime@users.noreply.github.com>2021-09-06 13:05:14 +0200
commit18f37f9c1206de3c2ad66fa4da164d706b2f37e0 (patch)
tree2305ac4c1fcfe0ac7dda037d6e54168364290861
parentc62cb964e2c61fb5bdbc0b4bb5c626029c68a727 (diff)
downloadSkyblocker-18f37f9c1206de3c2ad66fa4da164d706b2f37e0.tar.gz
Skyblocker-18f37f9c1206de3c2ad66fa4da164d706b2f37e0.tar.bz2
Skyblocker-18f37f9c1206de3c2ad66fa4da164d706b2f37e0.zip
Changed chat filter to use regexes
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java30
1 files changed, 22 insertions, 8 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java
index 99d0cb08..3b80a9af 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java
@@ -2,27 +2,41 @@ package me.xmrvizzy.skyblocker.skyblock;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import java.util.regex.Pattern;
+
public class ChatFilter {
+ private static final Pattern ability;
+ private static final Pattern heal;
+ private static final Pattern aote;
+ private static final Pattern implosion;
+ private static final Pattern moltenWave;
+
public boolean shouldFilter(String message) {
SkyblockerConfig.Messages settings = SkyblockerConfig.get().messages;
- if (settings.hideAbility && (message.contains("This ability is currently on cooldown for ") ||
- message.contains("No more charges, next one in ") ||
- message.contains("This ability is on cooldown for ")))
+ if (settings.hideAbility && ability.matcher(message).matches())
return true;
- if (settings.hideHeal && (message.contains("You healed ") &&
- message.contains(" health!") || message.contains(" healed you for ")))
+ if (settings.hideHeal && heal.matcher(message).matches())
return true;
- if (settings.hideAOTE && message.contains("There are blocks in the way!"))
+ if (settings.hideAOTE && aote.matcher(message).matches())
return true;
- if (settings.hideImplosion && message.contains("Your Implosion hit "))
+ if (settings.hideImplosion && implosion.matcher(message).matches())
return true;
- if (settings.hideMoltenWave && message.contains("Your Molten Wave hit "))
+ if (settings.hideMoltenWave && moltenWave.matcher(message).matches())
return true;
return false;
}
+
+ static {
+ String number = "-?[0-9]{1,3}(?>,[0-9]{3})*(?:\\.[1-9])?";
+ ability = Pattern.compile("^(?:This ability is on cooldown for " + number + "s\\.|No more charges, next one in " + number + "s!)$");
+ heal = Pattern.compile("^(?:You healed yourself for " + number + " health!|[a-zA-Z0-9_]{2,16} healed you for " + number + " health!)$");
+ 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\\.$");
+ }
}