diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-06-17 12:52:19 +0800 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-06-24 12:57:16 +0800 |
commit | 28699078b09780e9447b72b2859bba46b0e8dca9 (patch) | |
tree | 9873c2a9db97c1856528321d2c43299e1d11d164 /src/main/java/me/xmrvizzy | |
parent | 631dd509925041c8ca6b63687fec565ecdff585d (diff) | |
download | Skyblocker-28699078b09780e9447b72b2859bba46b0e8dca9.tar.gz Skyblocker-28699078b09780e9447b72b2859bba46b0e8dca9.tar.bz2 Skyblocker-28699078b09780e9447b72b2859bba46b0e8dca9.zip |
Fix solver detection and highlights
Diffstat (limited to 'src/main/java/me/xmrvizzy')
3 files changed, 25 insertions, 28 deletions
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<Item> getChronomatronSlots() { @@ -104,12 +104,14 @@ public class ChronomatronSolver extends ExperimentSolver { @Override protected List<ColorHighlight> getColors(String[] groups, Map<Integer, ItemStack> slots) { List<ColorHighlight> highlights = new ArrayList<>(); - for (Map.Entry<Integer, ItemStack> 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<Integer, ItemStack> 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<Integer> 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<ColorHighlight> getColors(String[] groups, Map<Integer, ItemStack> displaySlots) { List<ColorHighlight> highlights = new ArrayList<>(); - for (Map.Entry<Integer, ItemStack> 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<Integer, ItemStack> 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<ColorHighlight> getColors(String[] groups, Map<Integer, ItemStack> slots) { - List<ColorHighlight> highlights = new ArrayList<>(); - for (Map.Entry<Integer, ItemStack> 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<>(); } } |