diff options
author | ExternalTime <84183548+ExternalTime@users.noreply.github.com> | 2021-09-06 13:05:14 +0200 |
---|---|---|
committer | ExternalTime <84183548+ExternalTime@users.noreply.github.com> | 2021-09-06 13:05:14 +0200 |
commit | 18f37f9c1206de3c2ad66fa4da164d706b2f37e0 (patch) | |
tree | 2305ac4c1fcfe0ac7dda037d6e54168364290861 | |
parent | c62cb964e2c61fb5bdbc0b4bb5c626029c68a727 (diff) | |
download | Skyblocker-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.java | 30 |
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\\.$"); + } } |