diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-08-01 17:58:59 -0400 |
|---|---|---|
| committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-08-08 00:22:09 -0400 |
| commit | 70c746a10e13190572cd7923154351a76b280ff5 (patch) | |
| tree | dc78ea9431df3f792d4c4f0224e4369c2a9febdf /src/main/java | |
| parent | 088583a5a5fff6758748e152d30de0adbbb12388 (diff) | |
| download | Skyblocker-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.java | 1 | ||||
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TrueHexDyeScreenDisplay.java | 53 |
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; + } +} |
