aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2025-06-27 15:07:34 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2025-06-27 15:07:34 -0400
commit7ecd9c630b64286a84dd207c3a13d6c3b921557b (patch)
tree8b93af26847d22f2959ec1c10900d01352a66a74
parent5e52be8a3263d686f083eb9adcf394d38953611e (diff)
downloadSkyblocker-7ecd9c630b64286a84dd207c3a13d6c3b921557b.tar.gz
Skyblocker-7ecd9c630b64286a84dd207c3a13d6c3b921557b.tar.bz2
Skyblocker-7ecd9c630b64286a84dd207c3a13d6c3b921557b.zip
Add Hunting Mobs features
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/HuntingCategory.java43
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/HuntingConfig.java11
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java9
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json8
5 files changed, 68 insertions, 12 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/HuntingCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/HuntingCategory.java
index dbd45f12..a8352c45 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/HuntingCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/HuntingCategory.java
@@ -5,21 +5,44 @@ import de.hysky.skyblocker.config.SkyblockerConfig;
import dev.isxander.yacl3.api.ConfigCategory;
import dev.isxander.yacl3.api.Option;
import dev.isxander.yacl3.api.OptionDescription;
+import dev.isxander.yacl3.api.OptionGroup;
import net.minecraft.text.Text;
public class HuntingCategory {
public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
return ConfigCategory.createBuilder()
- .name(Text.translatable("skyblocker.config.hunting"))
- .option(Option.<Boolean>createBuilder()
- .name(Text.translatable("skyblocker.config.hunting.huntingBoxHelper"))
- .binding(defaults.hunting.huntingBox.enabled,
- () -> config.hunting.huntingBox.enabled,
- value -> config.hunting.huntingBox.enabled = value)
- .controller(ConfigUtils::createBooleanController)
- .description(OptionDescription.of(Text.translatable("skyblocker.config.hunting.huntingBoxHelper.@Tooltip")))
- .build())
- .build();
+ .name(Text.translatable("skyblocker.config.hunting"))
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.hunting.huntingBoxHelper"))
+ .binding(defaults.hunting.huntingBox.enabled,
+ () -> config.hunting.huntingBox.enabled,
+ value -> config.hunting.huntingBox.enabled = value)
+ .controller(ConfigUtils::createBooleanController)
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.hunting.huntingBoxHelper.@Tooltip")))
+ .build())
+
+ //Hunting Mob Features
+ .group(OptionGroup.createBuilder()
+ .name(Text.translatable("skyblocker.config.hunting.huntingMobs"))
+ .collapsed(false)
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.hunting.huntingMobs.silencePhantoms"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.hunting.huntingMobs.silencePhantoms.@Tooltip")))
+ .binding(defaults.hunting.huntingMobs.silencePhantoms,
+ () -> config.hunting.huntingMobs.silencePhantoms,
+ newValue -> config.hunting.huntingMobs.silencePhantoms = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.translatable("skyblocker.config.hunting.huntingMobs.highlightHideongift"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.hunting.huntingMobs.highlightHideongift.@Tooltip")))
+ .binding(defaults.hunting.huntingMobs.highlightHideongift,
+ () -> config.hunting.huntingMobs.highlightHideongift,
+ newValue -> config.hunting.huntingMobs.highlightHideongift = newValue)
+ .controller(ConfigUtils::createBooleanController)
+ .build())
+ .build())
+ .build();
}
}
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/HuntingConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/HuntingConfig.java
index c152a057..4b5455e4 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/HuntingConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/HuntingConfig.java
@@ -6,8 +6,19 @@ public class HuntingConfig {
@SerialEntry
public HuntingBox huntingBox = new HuntingBox();
+ @SerialEntry
+ public HuntingMobs huntingMobs = new HuntingMobs();
+
public static class HuntingBox {
@SerialEntry
public boolean enabled = true;
}
+
+ public static class HuntingMobs {
+ @SerialEntry
+ public boolean silencePhantoms = true;
+
+ @SerialEntry
+ public boolean highlightHideongift = true;
+ }
}
diff --git a/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java
index f3987bc1..a9f210c4 100644
--- a/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java
+++ b/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java
@@ -1,5 +1,6 @@
package de.hysky.skyblocker.mixins;
+import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager;
import de.hysky.skyblocker.skyblock.dungeon.device.SimonSays;
import de.hysky.skyblocker.skyblock.dwarven.CrystalsChestHighlighter;
@@ -11,6 +12,7 @@ import de.hysky.skyblocker.utils.Utils;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.client.world.ClientWorld;
+import net.minecraft.sound.SoundEvent;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.BlockView;
@@ -54,4 +56,11 @@ public abstract class ClientWorldMixin implements BlockView {
SimonSays.onBlockUpdate(pos, state, oldState.get());
}
+
+ @Inject(method = "playSound(DDDLnet/minecraft/sound/SoundEvent;Lnet/minecraft/sound/SoundCategory;FFZJ)V", at = @At("HEAD"), cancellable = true)
+ private void skyblocker$silencePhantoms(CallbackInfo ci, @Local(argsOnly = true) SoundEvent soundEvent) {
+ if (SkyblockerConfigManager.get().hunting.huntingMobs.silencePhantoms && soundEvent.id().getPath().startsWith("entity.phantom")) {
+ ci.cancel();
+ }
+ }
}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java
index 1f34f91e..221d4116 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java
@@ -28,6 +28,7 @@ import net.minecraft.entity.mob.*;
import net.minecraft.entity.passive.BatEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.predicate.entity.EntityPredicates;
+import net.minecraft.util.DyeColor;
import net.minecraft.util.Formatting;
import net.minecraft.util.math.Box;
import net.minecraft.world.World;
@@ -149,6 +150,14 @@ public class MobGlow {
};
}
+ if (Utils.isInGalatea()) {
+ return switch (entity) {
+ case ShulkerEntity shulker when shulker.getColor() == DyeColor.GREEN && SkyblockerConfigManager.get().hunting.huntingMobs.highlightHideongift -> DyeColor.YELLOW.getSignColor();
+
+ default -> NO_GLOW;
+ };
+ }
+
return switch (entity) {
// Rift Blobbercyst
case PlayerEntity p when SkyblockerConfigManager.get().otherLocations.rift.blobbercystGlow && Utils.isInTheRift() && name.equals("Blobbercyst ") -> Formatting.GREEN.getColorValue();
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 8bd849d1..64fbe93a 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -287,8 +287,6 @@
"skyblocker.config.foraging.galatea.solveForestTemplePuzzle": "Solve Forest Temple Puzzle",
"skyblocker.config.foraging.galatea.solveForestTemplePuzzle.@Tooltip": "Displays the amount of times you need to rotate the terracotta blocks. For positive rotations you right click while for negative rotations you left click.",
- "skyblocker.config.foraging.hunting": "Hunting",
-
"skyblocker.config.general": "General",
"skyblocker.config.general.chestValue.@Tooltip": "Calculate the value of this container.",
@@ -523,6 +521,12 @@
"skyblocker.config.hunting.huntingBoxHelper": "Enable Hunting Box Helper",
"skyblocker.config.hunting.huntingBoxHelper.@Tooltip": "Highlights shards that you have enough of to syphon and reach the next tier of the attribute in the Hunting Box. Also displays the sell price of shards in the tooltip.",
+ "skyblocker.config.hunting.huntingMobs": "Hunting Mobs",
+ "skyblocker.config.hunting.huntingMobs.silencePhantoms": "Silence Phantoms",
+ "skyblocker.config.hunting.huntingMobs.silencePhantoms.@Tooltip": "Mutes all sounds related to Phantoms while on Galatea.",
+ "skyblocker.config.hunting.huntingMobs.highlightHideongift": "Highlight Hideongift",
+ "skyblocker.config.hunting.huntingMobs.highlightHideongift.@Tooltip": "Highlights Hideongifts in yellow to make them easier to see.",
+
"skyblocker.config.chat": "Chat",
"skyblocker.config.chat.chatRules": "Custom Chat Rules",