aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/LocationsCategory.java13
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/MessageFilterCategory.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/filters/DicerFilter.java15
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java3
6 files changed, 61 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
index 51c34343..7c80215c 100644
--- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java
@@ -621,6 +621,9 @@ public class SkyblockerConfig {
@SerialEntry
public SpidersDen spidersDen = new SpidersDen();
+
+ @SerialEntry
+ public Garden garden = new Garden();
}
public static class Dungeons {
@@ -1020,6 +1023,11 @@ public class SkyblockerConfig {
public boolean highlightFoundRelics = true;
}
+ public static class Garden {
+ @SerialEntry
+ public boolean dicerTitlePrevent = true;
+ }
+
public static class Slayer {
@SerialEntry
public EndermanSlayer endermanSlayer = new EndermanSlayer();
@@ -1116,6 +1124,9 @@ public class SkyblockerConfig {
@SerialEntry
public boolean hideMana = false;
+
+ @SerialEntry
+ public ChatFilterResult hideDicer = ChatFilterResult.PASS;
}
public enum Info {
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/LocationsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/LocationsCategory.java
index 0b388d16..9bdcf2e9 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/LocationsCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/LocationsCategory.java
@@ -98,6 +98,19 @@ public class LocationsCategory {
.controller(ConfigUtils::createBooleanController)
.build())
.build())
+
+ //Garden
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.locations.garden"))
+ .collapsed(false)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.locations.garden.dicerTitlePrevent"))
+ .binding(defaults.locations.garden.dicerTitlePrevent,
+ () -> config.locations.garden.dicerTitlePrevent,
+ newValue -> config.locations.garden.dicerTitlePrevent = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
.build();
}
}
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 ce349049..acdc8169 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/MessageFilterCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/MessageFilterCategory.java
@@ -118,6 +118,14 @@ public class MessageFilterCategory {
newValue -> config.messages.hideDeath = newValue)
.controller(ConfigUtils::createEnumCyclingListController)
.build())
+ .option(Option.<ChatFilterResult>createBuilder()
+ .name(Text.translatable("text.autoconfig.skyblocker.option.messages.hideDicer"))
+ .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.messages.hideDicer.@Tooltip")))
+ .binding(defaults.messages.hideDicer,
+ () -> config.messages.hideDicer,
+ newValue -> config.messages.hideDicer = newValue)
+ .controller(ConfigUtils::createEnumCyclingListController)
+ .build())
.build();
}
}
diff --git a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java
index c8f6f272..88be60cd 100644
--- a/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixin/InGameHudMixin.java
@@ -19,9 +19,11 @@ import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
+import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import java.util.function.Supplier;
+import java.util.regex.Pattern;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
@@ -37,6 +39,9 @@ public abstract class InGameHudMixin {
@Unique
private static final Supplier<Identifier> SLOT_LOCK_ICON = () -> SkyblockerConfigManager.get().general.itemProtection.slotLockStyle.tex;
@Unique
+ private static final Pattern DICER_TITLE_BLACKLIST = Pattern.compile(".+? DROP!");
+
+ @Unique
private final FancyStatusBars statusBars = new FancyStatusBars();
@Shadow
@@ -101,4 +106,11 @@ public abstract class InGameHudMixin {
return cooldownProgress;
}
+
+ @Inject(method = "setTitle", at = @At("HEAD"), cancellable = true)
+ private void skyblocker$dicerTitlePrevent(Text title, CallbackInfo ci) {
+ if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().locations.garden.dicerTitlePrevent && title != null && DICER_TITLE_BLACKLIST.matcher(title.getString()).matches()) {
+ ci.cancel();
+ }
+ }
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/DicerFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/DicerFilter.java
new file mode 100644
index 00000000..a3f78684
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/filters/DicerFilter.java
@@ -0,0 +1,15 @@
+package de.hysky.skyblocker.skyblock.filters;
+
+import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.utils.chat.ChatFilterResult;
+
+public class DicerFilter extends SimpleChatFilter {
+ public DicerFilter() {
+ super("[A-Z]+ DROP! .*Dicer dropped [0-9]+x.+!$");
+ }
+
+ @Override
+ public ChatFilterResult state() {
+ return SkyblockerConfigManager.get().messages.hideDicer;
+ }
+}
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 ee43bc4c..bdff2d94 100644
--- a/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java
+++ b/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java
@@ -56,7 +56,8 @@ public interface ChatMessageListener {
new ShowOffFilter(),
new ToggleSkyMallFilter(),
new MimicFilter(),
- new DeathFilter()
+ new DeathFilter(),
+ new DicerFilter()
};
// Register all listeners to EVENT
for (ChatMessageListener listener : listeners) {