diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2025-06-27 15:07:34 -0400 |
|---|---|---|
| committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2025-06-27 15:07:34 -0400 |
| commit | 7ecd9c630b64286a84dd207c3a13d6c3b921557b (patch) | |
| tree | 8b93af26847d22f2959ec1c10900d01352a66a74 /src/main/java | |
| parent | 5e52be8a3263d686f083eb9adcf394d38953611e (diff) | |
| download | Skyblocker-7ecd9c630b64286a84dd207c3a13d6c3b921557b.tar.gz Skyblocker-7ecd9c630b64286a84dd207c3a13d6c3b921557b.tar.bz2 Skyblocker-7ecd9c630b64286a84dd207c3a13d6c3b921557b.zip | |
Add Hunting Mobs features
Diffstat (limited to 'src/main/java')
4 files changed, 62 insertions, 10 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(); |
