aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-07-11 18:34:12 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-07-11 18:39:02 +0300
commit1f94e68c0f319941395ac0940472cf1686e1d8d2 (patch)
treeea4e9f5757defcdd3ec8d6a562089619d0bf1f15 /src/main/java/de/hysky/skyblocker/skyblock
parent1dbb973e791456c418acfa45be824640db2b111f (diff)
downloadSkyblocker-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.java18
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/slottext/SlotText.java19
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));
+ }
}