diff options
| author | MisterCheezeCake <75341435+MisterCheezeCake@users.noreply.github.com> | 2025-07-07 12:30:32 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-07 12:30:32 -0400 |
| commit | ad204cdf0271143f733e590bffc339520a12ad8a (patch) | |
| tree | 6a2dbcd1d7e872719f1e15c03fa6a2e78732f663 /src/main/java/de/hysky | |
| parent | e0e9200faf430b9f08e8ca0ac54d446b6905dc86 (diff) | |
| download | Skyblocker-ad204cdf0271143f733e590bffc339520a12ad8a.tar.gz Skyblocker-ad204cdf0271143f733e590bffc339520a12ad8a.tar.bz2 Skyblocker-ad204cdf0271143f733e590bffc339520a12ad8a.zip | |
Bestiary Level Slot Text & Slot Text Fixes (#1452)
* feat: Bestiary Level Slot Text
* fix: Stop double slot text rendering on minions in collection and essence shop guis
* refactor: Requested changes
* refactor: Remove unused imports
Diffstat (limited to 'src/main/java/de/hysky')
4 files changed, 59 insertions, 11 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java index d031a180..361c9c23 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java @@ -61,7 +61,8 @@ public class SlotTextManager { WardrobeKeybinds.INSTANCE, new SkyblockGuideAdder(), SameColorTerminal.INSTANCE, - AttributeLevelHelper.INSTANCE + AttributeLevelHelper.INSTANCE, + new BestiaryLevelAdder() }; private static final ArrayList<SlotTextAdder> currentScreenAdders = new ArrayList<>(); private static final KeyBinding keyBinding = KeyBindingHelper.registerKeyBinding(new KeyBinding("key.skyblocker.slottext", GLFW.GLFW_KEY_LEFT_ALT, "key.categories.skyblocker")); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/BestiaryLevelAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/BestiaryLevelAdder.java new file mode 100644 index 00000000..5d1ae5c0 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/BestiaryLevelAdder.java @@ -0,0 +1,44 @@ +package de.hysky.skyblocker.skyblock.item.slottext.adders; + +import de.hysky.skyblocker.skyblock.item.slottext.SimpleSlotTextAdder; +import de.hysky.skyblocker.skyblock.item.slottext.SlotText; +import de.hysky.skyblocker.utils.ItemUtils; +import de.hysky.skyblocker.utils.RomanNumerals; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.slot.Slot; +import net.minecraft.text.Text; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class BestiaryLevelAdder extends SimpleSlotTextAdder { + private static final Pattern BESTIARY = Pattern.compile("^[\\w -]+ (?<level>[IVXLCDM]+)$"); + private static final ConfigInformation CONFIG_INFORMATION = new ConfigInformation( + "bestiary_level", + "skyblocker.config.uiAndVisuals.slotText.bestiaryLevel" + ); + + public BestiaryLevelAdder() { + super("Bestiary ➜ .+", CONFIG_INFORMATION); + } + + + @Override + public @NotNull List<SlotText> getText(@Nullable Slot slot, @NotNull ItemStack stack, int slotId) { + if (slotId > 53) return List.of(); // Prevent accidentally adding text to slots which also match the pattern in the inventory (like minions) + Matcher matcher = BESTIARY.matcher(stack.getName().getString()); + if (matcher.matches()) { + int level = RomanNumerals.romanToDecimal(matcher.group("level")); + if (ItemUtils.getLoreLineIf(stack, s -> s.contains("Overall Progress: 100%")) != null) { + return SlotText.bottomRightList(Text.literal(String.valueOf(level)).withColor(SlotText.GOLD)); + } else { + return SlotText.bottomRightList(Text.literal(String.valueOf(level)).withColor(SlotText.CREAM)); + } + } + + return List.of(); + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CollectionAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CollectionAdder.java index 3d915303..89724a03 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CollectionAdder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CollectionAdder.java @@ -27,15 +27,17 @@ public class CollectionAdder extends SimpleSlotTextAdder { @Override public @NotNull List<SlotText> getText(@Nullable Slot slot, @NotNull ItemStack stack, int slotId) { - Matcher matcher = COLLECTION.matcher(stack.getName().getString()); - if (matcher.matches()) { - int level = RomanNumerals.romanToDecimal(matcher.group("level")); - if (ItemUtils.getLoreLineIf(stack, s -> s.contains("Progress to ")) != null) { - return SlotText.bottomRightList(Text.literal(String.valueOf(level)).withColor(SlotText.CREAM)); - } else { - return SlotText.bottomRightList(Text.literal(String.valueOf(level)).withColor(SlotText.GOLD)); - } - } - return List.of(); + if (slotId > 53) return List.of(); + Matcher matcher = COLLECTION.matcher(stack.getName().getString()); + if (matcher.matches()) { + int level = RomanNumerals.romanToDecimal(matcher.group("level")); + if (ItemUtils.getLoreLineIf(stack, s -> s.contains("Progress to ")) != null) { + return SlotText.bottomRightList(Text.literal(String.valueOf(level)).withColor(SlotText.CREAM)); + } else { + return SlotText.bottomRightList(Text.literal(String.valueOf(level)).withColor(SlotText.GOLD)); + } + } + + return List.of(); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java index 3ac2d026..3ce5ef44 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java @@ -32,6 +32,7 @@ public class EssenceShopAdder extends SimpleSlotTextAdder { @Override public @NotNull List<SlotText> getText(@Nullable Slot slot, @NotNull ItemStack stack, int slotId) { + if (slotId > 53) return List.of(); Matcher essenceLevelMatcher = ESSENCELEVEL.matcher(stack.getName().getString()); Matcher essenceAmountMatcher = ItemUtils.getLoreLineIfMatch(stack, ESSENCE); |
