diff options
author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-07-11 18:34:12 +0300 |
---|---|---|
committer | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-07-11 18:39:02 +0300 |
commit | 1f94e68c0f319941395ac0940472cf1686e1d8d2 (patch) | |
tree | ea4e9f5757defcdd3ec8d6a562089619d0bf1f15 /src/main/java/de/hysky/skyblocker/skyblock | |
parent | 1dbb973e791456c418acfa45be824640db2b111f (diff) | |
download | Skyblocker-1f94e68c0f319941395ac0940472cf1686e1d8d2.tar.gz Skyblocker-1f94e68c0f319941395ac0940472cf1686e1d8d2.tar.bz2 Skyblocker-1f94e68c0f319941395ac0940472cf1686e1d8d2.zip |
Change the bz order helper to only show one icon at a time
Also adds some convenience methods to SlotText to make the `SlotTextAdder` logic more readable
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java | 18 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotText.java | 19 |
2 files changed, 27 insertions, 10 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java index 032d2295..aeef9d21 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java @@ -4,7 +4,6 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.item.slottext.SlotText; import de.hysky.skyblocker.skyblock.item.slottext.SlotTextAdder; import de.hysky.skyblocker.utils.ItemUtils; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; import net.minecraft.text.MutableText; @@ -38,22 +37,21 @@ public class BazaarHelper extends SlotTextAdder { ItemStack item = slot.getStack(); if (item.isEmpty()) return List.of(); //We've skipped all invalid slots, so we can just check if it's not air here. - ObjectArrayList<SlotText> icons = new ObjectArrayList<>(); - if (ItemUtils.getLoreLineIf(item, str -> str.equals("Expired!")) != null) { - //Todo: Handle the case where the order is close to expiring but hasn't expired yet. - icons.add(SlotText.topRight(getExpiredIcon(true))); - } - Matcher matcher = ItemUtils.getLoreLineIfMatch(item, FILLED_PATTERN); if (matcher != null) { List<Text> lore = ItemUtils.getLore(item); - if (!lore.isEmpty() && lore.getLast().getString().equals("Click to claim!")) { + if (!lore.isEmpty() && lore.getLast().getString().equals("Click to claim!")) { //Only show the filled icon when there are items to claim int filled = NumberUtils.toInt(matcher.group(1)); - icons.add(SlotText.topLeft(getFilledIcon(filled))); + return SlotText.topLeftList(getFilledIcon(filled)); } } - return icons; + if (ItemUtils.getLoreLineIf(item, str -> str.equals("Expired!")) != null) { + //Todo: Handle the case where the order is close to expiring but hasn't expired yet. + return SlotText.topLeftList(getExpiredIcon(true)); + } + + return List.of(); } public static @NotNull MutableText getExpiredIcon(boolean expired) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotText.java b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotText.java index 66c02ca1..73224509 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotText.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotText.java @@ -1,7 +1,10 @@ package de.hysky.skyblocker.skyblock.item.slottext; +import it.unimi.dsi.fastutil.objects.ObjectLists; import net.minecraft.text.Text; +import java.util.List; + public record SlotText(Text text, TextPosition position) { public static SlotText bottomLeft(Text text) { return new SlotText(text, TextPosition.BOTTOM_LEFT); @@ -18,4 +21,20 @@ public record SlotText(Text text, TextPosition position) { public static SlotText topRight(Text text) { return new SlotText(text, TextPosition.TOP_RIGHT); } + + public static List<SlotText> topLeftList(Text text) { + return ObjectLists.singleton(topLeft(text)); + } + + public static List<SlotText> topRightList(Text text) { + return ObjectLists.singleton(topRight(text)); + } + + public static List<SlotText> bottomLeftList(Text text) { + return ObjectLists.singleton(bottomLeft(text)); + } + + public static List<SlotText> bottomRightList(Text text) { + return ObjectLists.singleton(bottomRight(text)); + } } |