diff options
author | LifeIsAParadox <LifeIsAParadox@users.noreply.github.com> | 2021-09-14 09:21:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-14 09:21:50 +0200 |
commit | 8a9ea4520205f4441133f93a6f643553e8a423a3 (patch) | |
tree | 0fb8371ade6786ee9b4f72d2f97393e0a6374e8a /src/main/java/me/xmrvizzy/skyblocker/skyblock | |
parent | 7d2446cdc4bac31cb29709068b2f874da87d4ea9 (diff) | |
parent | 578e81734233b8db52c78bfec732e477fd7e0e90 (diff) | |
download | Skyblocker-8a9ea4520205f4441133f93a6f643553e8a423a3.tar.gz Skyblocker-8a9ea4520205f4441133f93a6f643553e8a423a3.tar.bz2 Skyblocker-8a9ea4520205f4441133f93a6f643553e8a423a3.zip |
Merge pull request #5 from ExternalTime/chat-filter
Chat filter
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java new file mode 100644 index 00000000..47f3716c --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/ChatFilter.java @@ -0,0 +1,53 @@ +package me.xmrvizzy.skyblocker.skyblock; + +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; + +import java.util.regex.Matcher; +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; + private static final Pattern playerMessage; + private static final Pattern adverts; + + public boolean shouldFilter(String message) { + SkyblockerConfig.Messages settings = SkyblockerConfig.get().messages; + if (settings.hideAbility && ability.matcher(message).matches()) + return true; + + if (settings.hideHeal && heal.matcher(message).matches()) + return true; + + if (settings.hideAOTE && aote.matcher(message).matches()) + return true; + + if (settings.hideImplosion && implosion.matcher(message).matches()) + return true; + + 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()) + 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\\.$"); + 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,})"); + } +} |