aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/bazaar
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-06-13 19:52:18 +0300
committerRime <81419447+Emirlol@users.noreply.github.com>2024-07-10 02:08:24 +0300
commitefbe9568050b7efce6871e0623eae35b205d2b83 (patch)
tree2781031ada0089b2a7b72eff8212fadb18e82120 /src/main/java/de/hysky/skyblocker/skyblock/bazaar
parent8d9a883f97c30b9958fedae7527215e005afcd2b (diff)
downloadSkyblocker-efbe9568050b7efce6871e0623eae35b205d2b83.tar.gz
Skyblocker-efbe9568050b7efce6871e0623eae35b205d2b83.tar.bz2
Skyblocker-efbe9568050b7efce6871e0623eae35b205d2b83.zip
Add secondary highlighting color scheme to BazaarHelper
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/bazaar')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java49
1 files changed, 42 insertions, 7 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 c9a4b732..8a9a7aa3 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/bazaar/BazaarHelper.java
@@ -6,6 +6,9 @@ import de.hysky.skyblocker.utils.render.gui.ColorHighlight;
import de.hysky.skyblocker.utils.render.gui.ContainerSolver;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.util.Formatting;
+import org.apache.commons.lang3.math.NumberUtils;
import java.util.ArrayList;
import java.util.List;
@@ -14,6 +17,7 @@ import java.util.regex.Pattern;
public class BazaarHelper extends ContainerSolver {
private static final Pattern ORDER_PATTERN = Pattern.compile("You have [\\d,]+ (items|coins) to claim!");
+ private static final Pattern FILLED_PATTERN = Pattern.compile("Filled: \\S+ \\(?([\\d.]+)%\\)?!?");
public BazaarHelper() {
super("Your Bazaar Orders");
@@ -27,20 +31,51 @@ public class BazaarHelper extends ContainerSolver {
@Override
protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) {
ArrayList<ColorHighlight> highlights = new ArrayList<>();
- for (int slot = 0; slot < slots.size(); slot++) {
+ // Skip the first and last 10 slots as those are always glass panes.
+ for (int slot = 10; slot < slots.size() - 10; slot++) {
+ ItemStack item = slots.get(slot);
+ if (item.isEmpty() || item.isOf(Items.BLACK_STAINED_GLASS_PANE)) continue;
if (ItemUtils.getLoreLineIf(slots.get(slot), str -> str.equals("Expired!")) != null) {
highlights.add(ColorHighlight.red(slot));
continue;
}
-
- Matcher matcher = ItemUtils.getLoreLineIfMatch(slots.get(slot), ORDER_PATTERN);
- if (matcher != null) {
- switch (matcher.group(1)) {
- case "items" -> highlights.add(new ColorHighlight(slot, 0x7000AA00));
- case "coins" -> highlights.add(new ColorHighlight(slot, 0x70FFAA00));
+ switch (SkyblockerConfigManager.get().helpers.bazaar.highlightingScheme) {
+ case ORDER_TYPE -> {
+ Matcher matcher = ItemUtils.getLoreLineIfMatch(slots.get(slot), ORDER_PATTERN);
+ if (matcher != null) {
+ switch (matcher.group(1)) {
+ case "items" -> highlights.add(new ColorHighlight(slot, Formatting.DARK_GREEN.getColorValue() & 0x70000000));
+ case "coins" -> highlights.add(new ColorHighlight(slot, Formatting.GOLD.getColorValue() & 0x70000000));
+ }
+ }
+ }
+ case FULFILLMENT -> {
+ Matcher matcher = ItemUtils.getLoreLineIfMatch(slots.get(slot), FILLED_PATTERN);
+ if (matcher != null) {
+ int filled = NumberUtils.toInt(matcher.group(1));
+ if (filled < 100) {
+ highlights.add(ColorHighlight.yellow(slot));
+ } else if (filled == 100) {
+ highlights.add(ColorHighlight.green(slot));
+ }
+ }
}
}
}
+
return highlights;
}
+
+ public enum HighlightingScheme {
+ ORDER_TYPE,
+ FULFILLMENT;
+
+ @Override
+ public String toString() {
+ return switch (this) {
+ case ORDER_TYPE -> "Order Type";
+ case FULFILLMENT -> "Fulfillment";
+ };
+ }
+ }
}