From 28699078b09780e9447b72b2859bba46b0e8dca9 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Sat, 17 Jun 2023 12:52:19 +0800 Subject: Fix solver detection and highlights --- .../skyblock/experiment/ChronomatronSolver.java | 16 +++++++------ .../skyblock/experiment/SuperpairsSolver.java | 26 ++++++++++++---------- .../skyblock/experiment/UltrasequencerSolver.java | 11 ++------- 3 files changed, 25 insertions(+), 28 deletions(-) (limited to 'src') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java index 1a6f0b55..40793169 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java @@ -35,7 +35,7 @@ public class ChronomatronSolver extends ExperimentSolver { private int chronomatronCurrentOrdinal; public ChronomatronSolver() { - super("^Chronomatron \\("); + super("^Chronomatron \\(\\w+\\)$"); } public List getChronomatronSlots() { @@ -104,12 +104,14 @@ public class ChronomatronSolver extends ExperimentSolver { @Override protected List getColors(String[] groups, Map slots) { List highlights = new ArrayList<>(); - for (Map.Entry indexStack : slots.entrySet()) { - int index = indexStack.getKey(); - ItemStack stack = indexStack.getValue(); - Item item = chronomatronSlots.get(chronomatronCurrentOrdinal); - if (stack.isOf(item) || TERRACOTTA_TO_GLASS.get(stack.getItem()) == item) { - highlights.add(ColorHighlight.green(index)); + if (getState() == State.SHOW && chronomatronSlots.size() > chronomatronCurrentOrdinal) { + for (Map.Entry indexStack : slots.entrySet()) { + int index = indexStack.getKey(); + ItemStack stack = indexStack.getValue(); + Item item = chronomatronSlots.get(chronomatronCurrentOrdinal); + if (stack.isOf(item) || TERRACOTTA_TO_GLASS.get(stack.getItem()) == item) { + highlights.add(ColorHighlight.green(index)); + } } } return highlights; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java index f40b0fa0..9f6e8b2a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java @@ -15,7 +15,7 @@ public class SuperpairsSolver extends ExperimentSolver { private final Set superpairsDuplicatedSlots = new HashSet<>(); public SuperpairsSolver() { - super("^Superpairs \\("); + super("^Superpairs \\(\\w+\\)$"); } public void setSuperpairsPrevClickedSlot(int superpairsPrevClickedSlot) { @@ -60,17 +60,19 @@ public class SuperpairsSolver extends ExperimentSolver { @Override protected List getColors(String[] groups, Map displaySlots) { List highlights = new ArrayList<>(); - for (Map.Entry indexStack : displaySlots.entrySet()){ - int index = indexStack.getKey(); - ItemStack displayStack = indexStack.getValue(); - ItemStack stack = getSlots().get(index); - if (stack != null && !ItemStack.areEqual(stack, displayStack)) { - if (ItemStack.areEqual(superpairsCurrentSlot, stack) && displayStack.getName().getString().equals("Click a second button!")) { - highlights.add(ColorHighlight.green(index)); - } else if (superpairsDuplicatedSlots.contains(index)) { - highlights.add(ColorHighlight.yellow(index)); - } else { - highlights.add(ColorHighlight.red(index)); + if (getState() == State.SHOW) { + for (Map.Entry indexStack : displaySlots.entrySet()) { + int index = indexStack.getKey(); + ItemStack displayStack = indexStack.getValue(); + ItemStack stack = getSlots().get(index); + if (stack != null && !ItemStack.areEqual(stack, displayStack)) { + if (ItemStack.areEqual(superpairsCurrentSlot, stack) && displayStack.getName().getString().equals("Click a second button!")) { + highlights.add(ColorHighlight.green(index)); + } else if (superpairsDuplicatedSlots.contains(index)) { + highlights.add(ColorHighlight.yellow(index)); + } else { + highlights.add(ColorHighlight.red(index)); + } } } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java index 90968fe2..45d6c0c6 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java @@ -15,7 +15,7 @@ public class UltrasequencerSolver extends ExperimentSolver { private int ultrasequencerNextSlot; public UltrasequencerSolver() { - super("^Ultrasequencer \\("); + super("^Ultrasequencer \\(\\w+\\)$"); } public int getUltrasequencerNextSlot() { @@ -75,13 +75,6 @@ public class UltrasequencerSolver extends ExperimentSolver { @Override protected List getColors(String[] groups, Map slots) { - List highlights = new ArrayList<>(); - for (Map.Entry indexStack : slots.entrySet()) { - int index = indexStack.getKey(); - if (index == ultrasequencerNextSlot) { - highlights.add(ColorHighlight.green(index)); - } - } - return highlights; + return getState() == State.SHOW && ultrasequencerNextSlot != 0 ? List.of(ColorHighlight.green(ultrasequencerNextSlot)) : new ArrayList<>(); } } -- cgit