aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-08-01 17:58:59 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2024-08-08 00:22:09 -0400
commit70c746a10e13190572cd7923154351a76b280ff5 (patch)
treedc78ea9431df3f792d4c4f0224e4369c2a9febdf /src/main/java
parent088583a5a5fff6758748e152d30de0adbbb12388 (diff)
downloadSkyblocker-70c746a10e13190572cd7923154351a76b280ff5.tar.gz
Skyblocker-70c746a10e13190572cd7923154351a76b280ff5.tar.bz2
Skyblocker-70c746a10e13190572cd7923154351a76b280ff5.zip
True HEX Colour display for the dyes in Vincent's screens
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java1
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TrueHexDyeScreenDisplay.java53
2 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java
index 40655bd1..ce8f2b9d 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipManager.java
@@ -24,6 +24,7 @@ public class TooltipManager {
private static final TooltipAdder[] adders = new TooltipAdder[]{
new LineSmoothener(), // Applies before anything else
new TrueHexDisplay(),
+ new TrueHexDyeScreenDisplay(),
new SupercraftReminder(),
ChocolateFactorySolver.INSTANCE,
new ReorderHelper(),
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TrueHexDyeScreenDisplay.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TrueHexDyeScreenDisplay.java
new file mode 100644
index 00000000..29b2684d
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TrueHexDyeScreenDisplay.java
@@ -0,0 +1,53 @@
+package de.hysky.skyblocker.skyblock.item.tooltip.adders;
+
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.jetbrains.annotations.Nullable;
+
+import de.hysky.skyblocker.skyblock.item.tooltip.SimpleTooltipAdder;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.screen.slot.Slot;
+import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
+
+/**
+ * Changes the color of HEX color codes on dye items inside of Vincent.
+ */
+public class TrueHexDyeScreenDisplay extends SimpleTooltipAdder {
+ private static final Pattern DYE_SCREEN_NAMES = Pattern.compile("Dye Compendium|Dyes");
+ private static final Pattern HEX_PATTERN = Pattern.compile("Hex (?<hex>#[A-Fa-f0-9]{6})");
+
+ public TrueHexDyeScreenDisplay() {
+ super(DYE_SCREEN_NAMES, Integer.MIN_VALUE);
+ }
+
+ @Override
+ public void addToTooltip(@Nullable Slot focusedSlot, ItemStack stack, List<Text> lines) {
+ String name = stack.getName().getString();
+
+ if (stack.isOf(Items.PLAYER_HEAD) && name.endsWith("Dye")) {
+ for (Text line : lines) {
+ Matcher matcher = HEX_PATTERN.matcher(line.getString());
+
+ if (matcher.matches()) {
+ String hex = matcher.group("hex");
+ List<Text> siblings = line.getSiblings();
+
+ siblings.clear();
+ siblings.add(Text.literal("Hex ").formatted(Formatting.DARK_GRAY));
+ siblings.add(Text.literal(hex).withColor(Integer.decode(hex)));
+
+ return;
+ }
+ }
+ }
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return true;
+ }
+}