aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-01-20 13:25:04 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-01-21 09:37:49 +0300
commitb1bfa5e0009b2a969c913e701a56b812517a0700 (patch)
tree106f1ce4a117d13c918bdfb4a441c8372d1315d7 /src/main/java/de/hysky/skyblocker
parentf7f8e5f0b8f9d638566e8528e1a64219b8bf40ad (diff)
downloadSkyblocker-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')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/MessageFilterCategory.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/DungeonScore.java6
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/filters/DeathFilter.java25
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java3
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) {