aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock
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/skyblock
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/skyblock')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/HungryHiker.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/TreasureHunter.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/ThreeWeirdos.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Trivia.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AbilityFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AdFilter.java39
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AoteFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AutopetFilter.java35
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/ComboFilter.java16
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/HealFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/ImplosionFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/MoltenWaveFilter.java15
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/ShowOffFilter.java18
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/SimpleChatFilter.java17
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/TeleportPadFilter.java16
18 files changed, 230 insertions, 14 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/HungryHiker.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/HungryHiker.java
index b0f0445a..a5d02d93 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/HungryHiker.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/HungryHiker.java
@@ -1,8 +1,8 @@
package me.xmrvizzy.skyblocker.skyblock.barn;
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.utils.chat.ChatPatternListener;
import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/TreasureHunter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/TreasureHunter.java
index ad5db522..ba42d2ba 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/TreasureHunter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/barn/TreasureHunter.java
@@ -1,8 +1,8 @@
package me.xmrvizzy.skyblocker.skyblock.barn;
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.utils.chat.ChatPatternListener;
import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java
index 8ae7ce7b..e1194632 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java
@@ -1,10 +1,10 @@
package me.xmrvizzy.skyblocker.skyblock.dungeon;
import me.xmrvizzy.skyblocker.SkyblockerMod;
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.utils.Utils;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.utils.chat.ChatPatternListener;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
import net.minecraft.client.MinecraftClient;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/ThreeWeirdos.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/ThreeWeirdos.java
index da964f07..9f522942 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/ThreeWeirdos.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/ThreeWeirdos.java
@@ -1,8 +1,8 @@
package me.xmrvizzy.skyblocker.skyblock.dungeon;
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.utils.chat.ChatPatternListener;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.decoration.ArmorStandEntity;
import net.minecraft.text.Text;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Trivia.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Trivia.java
index 9c7452ac..8497041b 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Trivia.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Trivia.java
@@ -1,8 +1,8 @@
package me.xmrvizzy.skyblocker.skyblock.dungeon;
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.utils.chat.ChatPatternListener;
import me.xmrvizzy.skyblocker.skyblock.FairySouls;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayerEntity;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java
index 4c2ac002..5e284452 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Fetchur.java
@@ -1,8 +1,8 @@
package me.xmrvizzy.skyblocker.skyblock.dwarven;
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.utils.chat.ChatPatternListener;
import net.minecraft.client.MinecraftClient;
import net.minecraft.text.Text;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java
index 0599b5b2..96ccdaf2 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dwarven/Puzzler.java
@@ -1,8 +1,8 @@
package me.xmrvizzy.skyblocker.skyblock.dwarven;
-import me.xmrvizzy.skyblocker.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.chat.ChatPatternListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.utils.chat.ChatPatternListener;
import net.minecraft.block.Blocks;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.world.ClientWorld;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AbilityFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AbilityFilter.java
new file mode 100644
index 00000000..97e5e8dd
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AbilityFilter.java
@@ -0,0 +1,15 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+
+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/skyblock/filters/AdFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AdFilter.java
new file mode 100644
index 00000000..c8335699
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AdFilter.java
@@ -0,0 +1,39 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.utils.chat.ChatPatternListener;
+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/skyblock/filters/AoteFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AoteFilter.java
new file mode 100644
index 00000000..15c1ce6a
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AoteFilter.java
@@ -0,0 +1,15 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+
+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/skyblock/filters/AutopetFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AutopetFilter.java
new file mode 100644
index 00000000..8c9ce9f6
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/AutopetFilter.java
@@ -0,0 +1,35 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.utils.chat.ChatPatternListener;
+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/skyblock/filters/ComboFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/ComboFilter.java
new file mode 100644
index 00000000..4a714e6d
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/ComboFilter.java
@@ -0,0 +1,16 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+
+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/skyblock/filters/HealFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/HealFilter.java
new file mode 100644
index 00000000..652d47c7
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/HealFilter.java
@@ -0,0 +1,15 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+
+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/skyblock/filters/ImplosionFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/ImplosionFilter.java
new file mode 100644
index 00000000..d7748313
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/ImplosionFilter.java
@@ -0,0 +1,15 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+
+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/skyblock/filters/MoltenWaveFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/MoltenWaveFilter.java
new file mode 100644
index 00000000..9f6138f0
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/MoltenWaveFilter.java
@@ -0,0 +1,15 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+
+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/skyblock/filters/ShowOffFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/ShowOffFilter.java
new file mode 100644
index 00000000..3b5ea41a
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/ShowOffFilter.java
@@ -0,0 +1,18 @@
+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/skyblock/filters/SimpleChatFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/SimpleChatFilter.java
new file mode 100644
index 00000000..20017443
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/SimpleChatFilter.java
@@ -0,0 +1,17 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.utils.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/skyblock/filters/TeleportPadFilter.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/TeleportPadFilter.java
new file mode 100644
index 00000000..1961d78a
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/filters/TeleportPadFilter.java
@@ -0,0 +1,16 @@
+package me.xmrvizzy.skyblocker.skyblock.filters;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+
+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