aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/SkyblockerConfig.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/DungeonsCategory.java18
-rw-r--r--src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java18
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java63
-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;