aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/chat
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-07-22 14:48:12 +0800
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-08-18 18:05:15 +0800
commitb80f6df13b8dfb97f1569f5802b66fc837480eef (patch)
tree3805f4ef04bbe988240862cfd528163047acb3bf /src/main/java/me/xmrvizzy/skyblocker/chat
parentfc65ff5b469fb384d2df422a5a6d8437012a819b (diff)
downloadSkyblocker-b80f6df13b8dfb97f1569f5802b66fc837480eef.tar.gz
Skyblocker-b80f6df13b8dfb97f1569f5802b66fc837480eef.tar.bz2
Skyblocker-b80f6df13b8dfb97f1569f5802b66fc837480eef.zip
Refactor chat and discord packages
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/chat')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatFilterResult.java18
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java88
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatPatternListener.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/AbilityFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java39
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/AutopetFilter.java35
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilter.java16
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/ShowOffFilter.java18
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/SimpleChatFilter.java17
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/TeleportPadFilter.java16
14 files changed, 0 insertions, 352 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatFilterResult.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatFilterResult.java
deleted file mode 100644
index 85c3f3e3..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatFilterResult.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package me.xmrvizzy.skyblocker.chat;
-
-import net.minecraft.client.resource.language.I18n;
-public enum ChatFilterResult {
- // Skip this one / no action
- PASS,
- // Filter
- FILTER,
- // Move to action bar
- ACTION_BAR;
- // Skip remaining checks, don't filter
- // null
-
- @Override
- public String toString() {
- return I18n.translate("text.autoconfig.skyblocker.option.messages.chatFilterResult." + name());
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java
deleted file mode 100644
index 5ea3e2a9..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package me.xmrvizzy.skyblocker.chat;
-
-import me.xmrvizzy.skyblocker.chat.filters.*;
-import me.xmrvizzy.skyblocker.skyblock.barn.HungryHiker;
-import me.xmrvizzy.skyblocker.skyblock.barn.TreasureHunter;
-import me.xmrvizzy.skyblocker.skyblock.dungeon.Reparty;
-import me.xmrvizzy.skyblocker.skyblock.dungeon.ThreeWeirdos;
-import me.xmrvizzy.skyblocker.skyblock.dungeon.Trivia;
-import me.xmrvizzy.skyblocker.skyblock.dwarven.Fetchur;
-import me.xmrvizzy.skyblocker.skyblock.dwarven.Puzzler;
-import me.xmrvizzy.skyblocker.utils.Utils;
-import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents;
-import net.fabricmc.fabric.api.event.Event;
-import net.fabricmc.fabric.api.event.EventFactory;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.network.ClientPlayerEntity;
-import net.minecraft.text.Text;
-
-@FunctionalInterface
-public interface ChatMessageListener {
- /**
- * An event called when a game message is received. Register your listeners in {@link ChatMessageListener#init()}.
- */
- Event<ChatMessageListener> EVENT = EventFactory.createArrayBacked(ChatMessageListener.class,
- (listeners) -> (message, asString) -> {
- for (ChatMessageListener listener : listeners) {
- ChatFilterResult result = listener.onMessage(message, asString);
- if (result != ChatFilterResult.PASS) return result;
- }
- return ChatFilterResult.PASS;
- });
-
- /**
- * Registers {@link ChatMessageListener}s to {@link ChatMessageListener#EVENT} and registers {@link ChatMessageListener#EVENT} to {@link ClientReceiveMessageEvents#ALLOW_GAME}
- */
- static void init() {
- ChatMessageListener[] listeners = new ChatMessageListener[]{
- // Features
- new Fetchur(),
- new Puzzler(),
- new Reparty(),
- new ThreeWeirdos(),
- new Trivia(),
- new TreasureHunter(),
- new HungryHiker(),
- // Filters
- new AbilityFilter(),
- new AdFilter(),
- new AoteFilter(),
- new ComboFilter(),
- new HealFilter(),
- new ImplosionFilter(),
- new MoltenWaveFilter(),
- new TeleportPadFilter(),
- new AutopetFilter(),
- new ShowOffFilter()
- };
- // Register all listeners to EVENT
- for (ChatMessageListener listener : listeners) {
- EVENT.register(listener);
- }
- // Register EVENT to ClientReceiveMessageEvents.ALLOW_GAME from fabric api
- ClientReceiveMessageEvents.ALLOW_GAME.register((message, overlay) -> {
- if (!Utils.isOnSkyblock()) {
- return true;
- }
- ChatFilterResult result = EVENT.invoker().onMessage(message, message.getString());
- switch (result) {
- case ACTION_BAR -> {
- if (overlay) {
- return true;
- }
- ClientPlayerEntity player = MinecraftClient.getInstance().player;
- if (player != null) {
- player.sendMessage(message, true);
- return false;
- }
- }
- case FILTER -> {
- return false;
- }
- }
- return true;
- });
- }
-
- ChatFilterResult onMessage(Text message, String asString);
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatPatternListener.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatPatternListener.java
deleted file mode 100644
index 8a32715e..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatPatternListener.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package me.xmrvizzy.skyblocker.chat;
-
-import net.minecraft.text.Text;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public abstract class ChatPatternListener implements ChatMessageListener {
- protected static final String NUMBER = "-?[0-9]{1,3}(?>,[0-9]{3})*(?:\\.[1-9])?";
- public final Pattern pattern;
-
- public ChatPatternListener(String pattern) {
- this.pattern = Pattern.compile(pattern);
- }
-
- @Override
- public final ChatFilterResult onMessage(Text message, String asString) {
- ChatFilterResult state = state();
- if (state == ChatFilterResult.PASS) return ChatFilterResult.PASS;
- Matcher m = pattern.matcher(asString);
- if (m.matches() && onMatch(message, m)) {
- return state;
- }
- return ChatFilterResult.PASS;
- }
-
- protected abstract ChatFilterResult state();
-
- protected abstract boolean onMatch(Text message, Matcher matcher);
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AbilityFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AbilityFilter.java
deleted file mode 100644
index 3a357a00..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AbilityFilter.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-
-public class AbilityFilter extends SimpleChatFilter {
- public AbilityFilter() {
- super("^(?:This ability is on cooldown for " + NUMBER + "s\\.|No more charges, next one in " + NUMBER + "s!)$");
- }
-
- @Override
- protected ChatFilterResult state() {
- return SkyblockerConfig.get().messages.hideAbility;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java
deleted file mode 100644
index a813346b..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import net.minecraft.text.Text;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class AdFilter extends ChatPatternListener {
- 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), };
- private static final String EMBLEMS = "\u2E15\u273F\u2741\u2E19\u03B1\u270E\u2615\u2616\u2663\u213B\u2694\u27B6\u26A1\u2604\u269A\u2693\u2620\u269B\u2666\u2660\u2764\u2727\u238A\u1360\u262C\u269D\u29C9\uA214\u32D6\u2E0E\u26A0\uA541\u3020\u30C4\u2948\u2622\u2623\u273E\u269C\u0BD0\u0A6D\u2742\u16C3\u3023\u10F6\u0444\u266A\u266B\u04C3\u26C1\u26C3\u16DD\uA03E\u1C6A\u03A3\u09EB\u2603\u2654\u12DE";
-
- public AdFilter() {
- // Groups:
- // 1. Player name
- // 2. Message
- // (?:§8\[[§feadbc0-9]+§8\] )?(?:[§76l]+[<INSERT EMBLEMS>] )?§[67abc](?:\[[§A-Za-z0-9+]+\] )?([A-Za-z0-9_]+)§[f7]: (.+)
- super("(?:§8\\[[§feadbc0-9]+§8\\] )?(?:[§76l]+[" + EMBLEMS + "] )?§[67abc](?:\\[[§A-Za-z0-9+]+\\] )?([A-Za-z0-9_]+)§[f7]: (.+)");
- }
-
- @Override
- public boolean onMatch(Text _message, Matcher matcher) {
- String message = matcher.group(2);
- for (Pattern adFilter : AD_FILTERS)
- if (adFilter.matcher(message).find())
- return true;
- return false;
- }
-
- @Override
- protected ChatFilterResult state() {
- return SkyblockerConfig.get().messages.hideAds;
- }
-} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java
deleted file mode 100644
index 029cf433..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-
-public class AoteFilter extends SimpleChatFilter {
- public AoteFilter() {
- super("^There are blocks in the way!$");
- }
-
- @Override
- public ChatFilterResult state() {
- return SkyblockerConfig.get().messages.hideAOTE;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AutopetFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AutopetFilter.java
deleted file mode 100644
index f1545db4..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AutopetFilter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.text.Text;
-
-import java.util.Objects;
-import java.util.regex.Matcher;
-
-public class AutopetFilter extends ChatPatternListener {
- public AutopetFilter() {
- super("^§cAutopet §eequipped your §7.*§e! §a§lVIEW RULE$");
- }
-
- @Override
- public boolean onMatch(Text _message, Matcher matcher) {
- if (SkyblockerConfig.get().messages.hideAutopet == ChatFilterResult.ACTION_BAR) {
- Objects.requireNonNull(MinecraftClient.getInstance().player).sendMessage(
- Text.literal(
- _message.getString().replace("§a§lVIEW RULE", "")
- ), true);
- }
- return true;
- }
-
- @Override
- public ChatFilterResult state() {
- if (SkyblockerConfig.get().messages.hideAutopet == ChatFilterResult.ACTION_BAR)
- return ChatFilterResult.FILTER;
- else
- return SkyblockerConfig.get().messages.hideAutopet;
- }
-} \ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilter.java
deleted file mode 100644
index 714ee9c9..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ComboFilter.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-
-public class ComboFilter extends SimpleChatFilter {
- public ComboFilter() {
- super("^(\\+\\d+ Kill Combo \\+\\d+(% ✯ Magic Find| coins per kill|% Combat Exp)" +
- "|Your Kill Combo has expired! You reached a \\d+ Kill Combo!)$");
- }
-
- @Override
- public ChatFilterResult state() {
- return SkyblockerConfig.get().messages.hideCombo;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java
deleted file mode 100644
index 62b41749..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-
-public class HealFilter extends SimpleChatFilter {
- public HealFilter() {
- super("^(?:You healed yourself for " + NUMBER + " health!|[a-zA-Z0-9_]{2,16} healed you for " + NUMBER + " health!)$");
- }
-
- @Override
- public ChatFilterResult state() {
- return SkyblockerConfig.get().messages.hideHeal;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java
deleted file mode 100644
index 9cc684ed..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-
-public class ImplosionFilter extends SimpleChatFilter {
- public ImplosionFilter() {
- super("^Your Implosion hit " + NUMBER + " enem(?:y|ies) for " + NUMBER + " damage\\.$");
- }
-
- @Override
- public ChatFilterResult state() {
- return SkyblockerConfig.get().messages.hideImplosion;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java
deleted file mode 100644
index da082c2d..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-
-public class MoltenWaveFilter extends SimpleChatFilter {
- public MoltenWaveFilter() {
- super("^Your Molten Wave hit " + NUMBER + " enem(?:y|ies) for " + NUMBER + " damage\\.$");
- }
-
- @Override
- public ChatFilterResult state() {
- return SkyblockerConfig.get().messages.hideMoltenWave;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ShowOffFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ShowOffFilter.java
deleted file mode 100644
index 3b5ea41a..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ShowOffFilter.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-
-public class ShowOffFilter extends SimpleChatFilter {
- private static final String EMBLEMS = "\u2E15\u273F\u2741\u2E19\u03B1\u270E\u2615\u2616\u2663\u213B\u2694\u27B6\u26A1\u2604\u269A\u2693\u2620\u269B\u2666\u2660\u2764\u2727\u238A\u1360\u262C\u269D\u29C9\uA214\u32D6\u2E0E\u26A0\uA541\u3020\u30C4\u2948\u2622\u2623\u273E\u269C\u0BD0\u0A6D\u2742\u16C3\u3023\u10F6\u0444\u266A\u266B\u04C3\u26C1\u26C3\u16DD\uA03E\u1C6A\u03A3\u09EB\u2603\u2654\u12DE";
- private static final String[] SHOW_TYPES = { "is holding", "is wearing", "is friends with a", "has" };
-
- public ShowOffFilter() {
- super("(?:§8\\[[§feadbc0-9]+§8\\] )?(?:[§76l]+[" + EMBLEMS + "] )?§[67abc](?:\\[[§A-Za-z0-9+]+\\] )?([A-Za-z0-9_]+)[§f7]+ (?:" + String.join("|", SHOW_TYPES) + ") §8\\[(.+)§8\\]");
- }
-
- @Override
- protected ChatFilterResult state() {
- return SkyblockerConfig.get().messages.hideShowOff;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/SimpleChatFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/SimpleChatFilter.java
deleted file mode 100644
index e23dbf33..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/SimpleChatFilter.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
-import net.minecraft.text.Text;
-
-import java.util.regex.Matcher;
-
-public abstract class SimpleChatFilter extends ChatPatternListener {
- public SimpleChatFilter(String pattern) {
- super(pattern);
- }
-
- @Override
- protected final boolean onMatch(Text message, Matcher matcher) {
- return true;
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/TeleportPadFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/TeleportPadFilter.java
deleted file mode 100644
index f7fab6d5..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/TeleportPadFilter.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package me.xmrvizzy.skyblocker.chat.filters;
-
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-
-public class TeleportPadFilter extends SimpleChatFilter {
- public TeleportPadFilter() {
- super("^(Warped from the .* Teleport Pad to the .* Teleport Pad!" +
- "|This Teleport Pad does not have a destination set!)$");
- }
-
- @Override
- public ChatFilterResult state() {
- return SkyblockerConfig.get().messages.hideTeleportPad;
- }
-} \ No newline at end of file