aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/dungeon
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/dungeon')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java23
1 files changed, 12 insertions, 11 deletions
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 d360ae2e..b6a035aa 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java
@@ -19,7 +19,6 @@ import net.minecraft.util.Formatting;
import net.minecraft.util.math.BlockPos;
import java.util.Map;
-import java.util.Set;
public class LividColor {
private static final Map<Block, Formatting> WOOL_TO_FORMATTING = Map.of(
@@ -44,14 +43,16 @@ public class LividColor {
"Doctor Livid", Formatting.GRAY,
"Vendetta Livid", Formatting.WHITE
);
- public static final Set<String> LIVID_NAMES = Set.copyOf(LIVID_TO_FORMATTING.keySet());
public static final DungeonsConfig.Livid CONFIG = SkyblockerConfigManager.get().dungeons.livid;
private static Formatting color = Formatting.AQUA;
private static Block lastColor = Blocks.AIR;
- private static int lividID = 0;
private static boolean isInitialized = false;
- private static boolean originLividFound = false;
+ /**
+ * The correct livid may change color in M5, so we use the entity id to track the correct original livid.
+ */
+ private static boolean correctLividIdFound = false;
+ private static int correctLividId = 0;
private static final long OFFSET_DURATION = 2000;
private static long toggleTime = 0;
@@ -76,7 +77,7 @@ public class LividColor {
isInitialized = true;
} else if (isInitialized && System.currentTimeMillis() - toggleTime >= OFFSET_DURATION) {
onLividColorFound(client, currentColor);
- if (!originLividFound) {
+ if (!correctLividIdFound) {
String lividName = LIVID_TO_FORMATTING.entrySet().stream()
.filter(entry -> entry.getValue() == color)
.map(Map.Entry::getKey)
@@ -85,8 +86,8 @@ public class LividColor {
client.world.getPlayers().stream()
.filter(entity -> entity.getName().getString().equals(lividName))
.findFirst()
- .ifPresent(entity -> lividID = entity.getId());
- originLividFound = true;
+ .ifPresent(entity -> correctLividId = entity.getId());
+ correctLividIdFound = true;
}
lastColor = currentColor;
}
@@ -128,16 +129,16 @@ public class LividColor {
return Formatting.WHITE.getColorValue();
}
- public static int getLividID(){
- return lividID;
+ public static int getCorrectLividId() {
+ return correctLividId;
}
private static void reset() {
lastColor = Blocks.AIR;
toggleTime = 0;
isInitialized = false;
- originLividFound = false;
- lividID = 0;
+ correctLividIdFound = false;
+ correctLividId = 0;
color = Formatting.AQUA;
}
}