diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-01-20 13:25:04 +0300 |
---|---|---|
committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-01-21 09:37:49 +0300 |
commit | b1bfa5e0009b2a969c913e701a56b812517a0700 (patch) | |
tree | 106f1ce4a117d13c918bdfb4a441c8372d1315d7 /src/main/java/de/hysky/skyblocker | |
parent | f7f8e5f0b8f9d638566e8528e1a64219b8bf40ad (diff) | |
download | Skyblocker-b1bfa5e0009b2a969c913e701a56b812517a0700.tar.gz Skyblocker-b1bfa5e0009b2a969c913e701a56b812517a0700.tar.bz2 Skyblocker-b1bfa5e0009b2a969c913e701a56b812517a0700.zip |
Add death message filter and improve death regex
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
5 files changed, 43 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java index e47b008d..4e7f9802 100644 --- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java @@ -996,6 +996,9 @@ public class SkyblockerConfig { public ChatFilterResult hideMimicKill = ChatFilterResult.PASS; @SerialEntry + public ChatFilterResult hideDeath = ChatFilterResult.PASS; + + @SerialEntry public boolean hideMana = false; } diff --git a/src/main/java/de/hysky/skyblocker/config/categories/MessageFilterCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/MessageFilterCategory.java index 3fe285de..ce349049 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/MessageFilterCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/MessageFilterCategory.java @@ -110,6 +110,14 @@ public class MessageFilterCategory { newValue -> config.messages.hideMimicKill = newValue) .controller(ConfigUtils::createEnumCyclingListController) .build()) + .option(Option.<ChatFilterResult>createBuilder() + .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideDeath")) + .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.messages.hideDeath.@Tooltip"))) + .binding(defaults.messages.hideDeath, + () -> config.messages.hideDeath, + newValue -> config.messages.hideDeath = newValue) + .controller(ConfigUtils::createEnumCyclingListController) + .build()) .build(); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java index c6dbf8dc..a59d5615 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java @@ -47,7 +47,7 @@ public class DungeonScore { private static final Pattern CRYPTS_PATTERN = Pattern.compile("Crypts: (?<crypts>\\d+)"); private static final Pattern COMPLETED_ROOMS_PATTERN = Pattern.compile(" *Completed Rooms: (?<rooms>\\d+)"); //Chat patterns - private static final Pattern DEATHS_PATTERN = Pattern.compile(".*?\u2620 (?<whodied>\\S+) .*"); + private static final Pattern DEATHS_PATTERN = Pattern.compile(" \\u2620 (?<whodied>\\S+) .*"); //Other patterns private static final Pattern MIMIC_FLOORS_PATTERN = Pattern.compile("[FM][67]"); @@ -82,6 +82,10 @@ public class DungeonScore { checkMessageForWatcher(str); } }); + ClientReceiveMessageEvents.GAME_CANCELED.register((message, overlay) -> { + if (overlay || !Utils.isInDungeons() || !dungeonStarted) return; + checkMessageForDeaths(message.getString()); + }); } public static void tick() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/DeathFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/DeathFilter.java new file mode 100644 index 00000000..f2b9e7c5 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/filters/DeathFilter.java @@ -0,0 +1,25 @@ +package de.hysky.skyblocker.skyblock.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; +import de.hysky.skyblocker.utils.chat.ChatPatternListener; +import net.minecraft.text.Text; + +import java.util.regex.Matcher; + +public class DeathFilter extends ChatPatternListener { + + public DeathFilter() { + super(" \\u2620 .*"); + } + + @Override + protected ChatFilterResult state() { + return SkyblockerConfigManager.get().messages.hideDeath; + } + + @Override + protected boolean onMatch(Text message, Matcher matcher) { + return true; + } +} diff --git a/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java b/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java index 97398625..ee43bc4c 100644 --- a/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java +++ b/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java @@ -55,7 +55,8 @@ public interface ChatMessageListener { new AutopetFilter(), new ShowOffFilter(), new ToggleSkyMallFilter(), - new MimicFilter() + new MimicFilter(), + new DeathFilter() }; // Register all listeners to EVENT for (ChatMessageListener listener : listeners) { |