aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2025-02-01 23:45:14 +0300
committerGitHub <noreply@github.com>2025-02-01 15:45:14 -0500
commit7f37caa21f410b3cc2376239575691c0b70d0d51 (patch)
treef66c607ed8cfea212eabf1c00b2ae0e3ab817c25 /src
parent9182b9acbf7f85ce2e5d4a810e4e83c8a42f839f (diff)
downloadSkyblocker-7f37caa21f410b3cc2376239575691c0b70d0d51.tar.gz
Skyblocker-7f37caa21f410b3cc2376239575691c0b70d0d51.tar.bz2
Skyblocker-7f37caa21f410b3cc2376239575691c0b70d0d51.zip
Raffle task highlighter (#1155)
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/RaffleTaskHighlight.java44
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java4
2 files changed, 47 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/RaffleTaskHighlight.java b/src/main/java/de/hysky/skyblocker/skyblock/RaffleTaskHighlight.java
new file mode 100644
index 00000000..63c44adb
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/RaffleTaskHighlight.java
@@ -0,0 +1,44 @@
+package de.hysky.skyblocker.skyblock;
+
+import de.hysky.skyblocker.utils.ItemUtils;
+import de.hysky.skyblocker.utils.container.SimpleContainerSolver;
+import de.hysky.skyblocker.utils.render.gui.ColorHighlight;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap.Entry;
+import it.unimi.dsi.fastutil.objects.ObjectArrayList;
+import it.unimi.dsi.fastutil.objects.ObjectSet;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.text.Text;
+
+import java.util.List;
+
+public class RaffleTaskHighlight extends SimpleContainerSolver {
+ public RaffleTaskHighlight() {
+ super("Daily Tasks");
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return true;
+ }
+
+ @Override
+ public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) {
+ ObjectArrayList<ColorHighlight> highlights = new ObjectArrayList<>(21); // There are 21 paper slots, and they are either complete or incomplete, so we're guaranteed to need 21 highlights
+
+ ObjectSet<Entry<ItemStack>> set = slots.int2ObjectEntrySet();
+ for (Entry<ItemStack> entry : set) {
+ ItemStack itemStack = entry.getValue();
+ if (!itemStack.isOf(Items.PAPER) && !itemStack.isOf(Items.MAP) && !itemStack.isOf(Items.FILLED_MAP)) continue;
+ List<Text> lore = ItemUtils.getLore(itemStack);
+ if (lore.isEmpty()) continue;
+ switch (lore.getLast().getString()) {
+ case "COMPLETE" -> highlights.add(ColorHighlight.green(entry.getIntKey()));
+ case "INCOMPLETE" -> highlights.add(ColorHighlight.red(entry.getIntKey()));
+ }
+ }
+
+ return highlights;
+ }
+}
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java b/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java
index 868264c8..2f4e9bc0 100644
--- a/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java
+++ b/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java
@@ -2,6 +2,7 @@ package de.hysky.skyblocker.utils.container;
import de.hysky.skyblocker.annotations.Init;
import de.hysky.skyblocker.mixins.accessors.HandledScreenAccessor;
+import de.hysky.skyblocker.skyblock.RaffleTaskHighlight;
import de.hysky.skyblocker.skyblock.accessories.newyearcakes.NewYearCakeBagHelper;
import de.hysky.skyblocker.skyblock.accessories.newyearcakes.NewYearCakesHelper;
import de.hysky.skyblocker.skyblock.bazaar.ReorderHelper;
@@ -52,7 +53,8 @@ public class ContainerSolverManager {
NewYearCakesHelper.INSTANCE,
ChocolateFactorySolver.INSTANCE,
new ReorderHelper(),
- BitsHelper.INSTANCE
+ BitsHelper.INSTANCE,
+ new RaffleTaskHighlight()
};
private static ContainerSolver currentSolver = null;
private static List<ColorHighlight> highlights;