diff options
| author | Rime <81419447+Emirlol@users.noreply.github.com> | 2025-02-01 23:45:14 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-01 15:45:14 -0500 |
| commit | 7f37caa21f410b3cc2376239575691c0b70d0d51 (patch) | |
| tree | f66c607ed8cfea212eabf1c00b2ae0e3ab817c25 /src | |
| parent | 9182b9acbf7f85ce2e5d4a810e4e83c8a42f839f (diff) | |
| download | Skyblocker-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.java | 44 | ||||
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java | 4 |
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; |
