diff options
Diffstat (limited to 'src/main/java/de')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java | 5 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java | 18 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java | 18 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java | 63 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dungeon/MobGlow.java (renamed from src/main/java/de/hysky/skyblocker/skyblock/dungeon/StarredMobGlow.java) | 10 |
5 files changed, 57 insertions, 57 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java index 15017995..84b9e9ca 100644 --- a/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java @@ -656,7 +656,10 @@ public class SkyblockerConfig { public static class LividColor { @SerialEntry - public boolean enableLividColor = true; + public boolean enableLividColorGlow = true; + + @SerialEntry + public boolean enableLividColorText = true; @SerialEntry public String lividColorText = "The livid color is [color]"; diff --git a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java index fdb13892..cb390a71 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java @@ -293,11 +293,19 @@ public class DungeonsCategory { .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.lividColor")) .collapsed(true) .option(Option.<Boolean>createBuilder() - .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor")) - .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColor.@Tooltip"))) - .binding(defaults.locations.dungeons.lividColor.enableLividColor, - () -> config.locations.dungeons.lividColor.enableLividColor, - newValue -> config.locations.dungeons.lividColor.enableLividColor = newValue) + .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColorGlow")) + .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColorGlow.@Tooltip"))) + .binding(defaults.locations.dungeons.lividColor.enableLividColorGlow, + () -> config.locations.dungeons.lividColor.enableLividColorGlow, + newValue -> config.locations.dungeons.lividColor.enableLividColorGlow = newValue) + .controller(ConfigUtils::createBooleanController) + .build()) + .option(Option.<Boolean>createBuilder() + .name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColorText")) + .description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons.lividColor.enableLividColorText.@Tooltip"))) + .binding(defaults.locations.dungeons.lividColor.enableLividColorText, + () -> config.locations.dungeons.lividColor.enableLividColorText, + newValue -> config.locations.dungeons.lividColor.enableLividColorText = newValue) .controller(ConfigUtils::createBooleanController) .build()) .option(Option.<String>createBuilder() diff --git a/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java b/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java index e723c998..78c61416 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java @@ -9,25 +9,21 @@ import com.llamalad7.mixinextras.sugar.Local; import com.llamalad7.mixinextras.sugar.Share; import com.llamalad7.mixinextras.sugar.ref.LocalBooleanRef; -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.dungeon.StarredMobGlow; +import de.hysky.skyblocker.skyblock.dungeon.MobGlow; import net.minecraft.client.render.WorldRenderer; import net.minecraft.entity.Entity; @Mixin(WorldRenderer.class) public class WorldRendererMixin { - @ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;hasOutline(Lnet/minecraft/entity/Entity;)Z")) - private boolean skyblocker$shouldStarredMobGlow(boolean original, @Local Entity entity, @Share("isGlowingStarredMob") LocalBooleanRef isGlowingStarredMob) { - boolean isAStarredMobThatShouldGlow = SkyblockerConfigManager.get().locations.dungeons.starredMobGlow && StarredMobGlow.shouldMobGlow(entity); - - isGlowingStarredMob.set(isAStarredMobThatShouldGlow); - - return original || isAStarredMobThatShouldGlow; + private boolean skyblocker$shouldMobGlow(boolean original, @Local Entity entity, @Share("hasCustomGlow") LocalBooleanRef hasCustomGlow) { + boolean shouldGlow = MobGlow.shouldMobGlow(entity); + hasCustomGlow.set(shouldGlow); + return original || shouldGlow; } @ModifyVariable(method = "render", at = @At("STORE"), ordinal = 0) - private int skyblocker$modifyGlowColor(int color, @Local Entity entity, @Share("isGlowingStarredMob") LocalBooleanRef isGlowingStarredMob) { - return isGlowingStarredMob.get() ? StarredMobGlow.getGlowColor(entity) : color; + private int skyblocker$modifyGlowColor(int color, @Local Entity entity, @Share("hasCustomGlow") LocalBooleanRef hasCustomGlow) { + return hasCustomGlow.get() ? MobGlow.getGlowColor(entity) : color; } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java index 0c774fac..f40b7859 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.dungeon; +import de.hysky.skyblocker.config.SkyblockerConfig; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.scheduler.MessageScheduler; @@ -15,22 +16,34 @@ import java.util.Map; public class LividColor { private static final Map<Block, Formatting> WOOL_TO_FORMATTING = Map.of( - Blocks.WHITE_WOOL, Formatting.WHITE, - Blocks.MAGENTA_WOOL, Formatting.LIGHT_PURPLE, Blocks.RED_WOOL, Formatting.RED, - Blocks.GRAY_WOOL, Formatting.GRAY, - Blocks.GREEN_WOOL, Formatting.DARK_GREEN, + Blocks.YELLOW_WOOL, Formatting.YELLOW, Blocks.LIME_WOOL, Formatting.GREEN, + Blocks.GREEN_WOOL, Formatting.DARK_GREEN, Blocks.BLUE_WOOL, Formatting.BLUE, + Blocks.MAGENTA_WOOL, Formatting.LIGHT_PURPLE, Blocks.PURPLE_WOOL, Formatting.DARK_PURPLE, - Blocks.YELLOW_WOOL, Formatting.YELLOW + Blocks.GRAY_WOOL, Formatting.GRAY, + Blocks.WHITE_WOOL, Formatting.WHITE + ); + private static final Map<String, Formatting> LIVID_TO_FORMATTING = Map.of( + "Hockey Livid", Formatting.RED, + "Arcade Livid", Formatting.YELLOW, + "Smile Livid", Formatting.GREEN, + "Frog Livid", Formatting.DARK_GREEN, + "Scream Livid", Formatting.BLUE, + "Crossed Livid", Formatting.LIGHT_PURPLE, + "Purple Livid", Formatting.DARK_PURPLE, + "Doctor Livid", Formatting.GRAY, + "Vendetta Livid", Formatting.WHITE ); private static int tenTicks = 0; private static Formatting color; public static void init() { ClientReceiveMessageEvents.GAME.register((message, overlay) -> { - if (SkyblockerConfigManager.get().locations.dungeons.lividColor.enableLividColor && message.getString().equals("[BOSS] Livid: I respect you for making it to here, but I'll be your undoing.")) { + SkyblockerConfig.LividColor config = SkyblockerConfigManager.get().locations.dungeons.lividColor; + if ((config.enableLividColorText || config.enableLividColorGlow) && message.getString().equals("[BOSS] Livid: I respect you for making it to here, but I'll be your undoing.")) { tenTicks = 8; } }); @@ -39,7 +52,8 @@ public class LividColor { public static void update() { MinecraftClient client = MinecraftClient.getInstance(); if (tenTicks != 0) { - if (SkyblockerConfigManager.get().locations.dungeons.lividColor.enableLividColor && Utils.isInDungeons() && client.world != null) { + SkyblockerConfig.LividColor config = SkyblockerConfigManager.get().locations.dungeons.lividColor; + if ((config.enableLividColorText || config.enableLividColorGlow) && Utils.isInDungeons() && client.world != null) { if (tenTicks == 1) { onLividColorFound(Blocks.RED_WOOL); return; @@ -58,40 +72,19 @@ public class LividColor { private static void onLividColorFound(Block color) { LividColor.color = WOOL_TO_FORMATTING.get(color); - String colorString = Registries.BLOCK.getId(color).getPath(); - MessageScheduler.INSTANCE.sendMessageAfterCooldown(SkyblockerConfigManager.get().locations.dungeons.lividColor.lividColorText.replace("[color]", colorString.substring(0, colorString.length() - 5))); + if (SkyblockerConfigManager.get().locations.dungeons.lividColor.enableLividColorText) { + String colorString = Registries.BLOCK.getId(color).getPath(); + MessageScheduler.INSTANCE.sendMessageAfterCooldown(SkyblockerConfigManager.get().locations.dungeons.lividColor.lividColorText.replaceAll("\\[color]", colorString.substring(0, colorString.length() - 5))); + } tenTicks = 0; } public static boolean shouldGlow(String name) { - return switch (name) { - case "Arcade Livid" -> color == Formatting.YELLOW; - case "Crossed Livid" -> color == Formatting.LIGHT_PURPLE; - case "Doctor Livid" -> color == Formatting.GRAY; - case "Frog Livid" -> color == Formatting.DARK_GREEN; - case "Hockey Livid" -> color == Formatting.RED; - case "Purple Livid" -> color == Formatting.DARK_PURPLE; - case "Scream Livid" -> color == Formatting.BLUE; - case "Smile Livid" -> color == Formatting.GREEN; - case "Vendetta Livid" -> color == Formatting.WHITE; - - default -> false; - }; + return SkyblockerConfigManager.get().locations.dungeons.lividColor.enableLividColorGlow && color == LIVID_TO_FORMATTING.get(name); } + @SuppressWarnings("DataFlowIssue") public static int getGlowColor(String name) { - return switch (name) { - case "Arcade Livid" -> Formatting.YELLOW.getColorValue(); - case "Crossed Livid" -> Formatting.LIGHT_PURPLE.getColorValue(); - case "Doctor Livid" -> Formatting.GRAY.getColorValue(); - case "Frog Livid" -> Formatting.DARK_GREEN.getColorValue(); - case "Hockey Livid" -> Formatting.RED.getColorValue(); - case "Purple Livid" -> Formatting.DARK_PURPLE.getColorValue(); - case "Scream Livid" -> Formatting.BLUE.getColorValue(); - case "Smile Livid" -> Formatting.GREEN.getColorValue(); - case "Vendetta Livid" -> Formatting.WHITE.getColorValue(); - - default -> Formatting.WHITE.getColorValue(); - }; + return LIVID_TO_FORMATTING.containsKey(name) ? LIVID_TO_FORMATTING.get(name).getColorValue() : Formatting.WHITE.getColorValue(); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/StarredMobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/MobGlow.java index 4529797c..523b7a98 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/StarredMobGlow.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/MobGlow.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.dungeon; +import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.culling.OcclusionCulling; import net.minecraft.entity.Entity; @@ -12,8 +13,7 @@ import net.minecraft.world.World; import java.util.List; -public class StarredMobGlow { - +public class MobGlow { public static boolean shouldMobGlow(Entity entity) { Box box = entity.getBoundingBox(); @@ -23,7 +23,7 @@ public class StarredMobGlow { // Minibosses if (entity instanceof PlayerEntity) { switch (name) { - case "Lost Adventurer", "Shadow Assassin", "Diamond Guy": return true; + case "Lost Adventurer", "Shadow Assassin", "Diamond Guy": return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow; case "Arcade Livid", "Crossed Livid", "Doctor Livid", "Frog Livid", "Hockey Livid", "Purple Livid", "Scream Livid", "Smile Livid", "Vendetta Livid": return LividColor.shouldGlow(name); } @@ -33,11 +33,11 @@ public class StarredMobGlow { if (!(entity instanceof ArmorStandEntity)) { List<ArmorStandEntity> armorStands = getArmorStands(entity.getWorld(), box); - if (!armorStands.isEmpty() && armorStands.get(0).getName().getString().contains("✯")) return true; + if (!armorStands.isEmpty() && armorStands.get(0).getName().getString().contains("✯")) return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow; } // Bats - return entity instanceof BatEntity; + return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow && entity instanceof BatEntity; } return false; |