aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky
diff options
context:
space:
mode:
authorMisterCheezeCake <75341435+MisterCheezeCake@users.noreply.github.com>2025-07-07 12:30:32 -0400
committerGitHub <noreply@github.com>2025-07-07 12:30:32 -0400
commitad204cdf0271143f733e590bffc339520a12ad8a (patch)
tree6a2dbcd1d7e872719f1e15c03fa6a2e78732f663 /src/main/java/de/hysky
parente0e9200faf430b9f08e8ca0ac54d446b6905dc86 (diff)
downloadSkyblocker-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')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotTextManager.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/BestiaryLevelAdder.java44
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/CollectionAdder.java22
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EssenceShopAdder.java1
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);