aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
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 /src/main/java
parent5e52be8a3263d686f083eb9adcf394d38953611e (diff)
downloadSkyblocker-7ecd9c630b64286a84dd207c3a13d6c3b921557b.tar.gz
Skyblocker-7ecd9c630b64286a84dd207c3a13d6c3b921557b.tar.bz2
Skyblocker-7ecd9c630b64286a84dd207c3a13d6c3b921557b.zip
Add Hunting Mobs features
Diffstat (limited to 'src/main/java')
-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
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();