From e9c2a6916ff744c935c4330c259b641159ec9b80 Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Fri, 16 Jun 2023 16:56:15 +0800 Subject: Fix Superpairs Solver initial state and refactor Experiment Solver fields to private --- .../skyblock/experiment/ChronomatronSolver.java | 8 ++++---- .../skyblocker/skyblock/experiment/ExperimentSolver.java | 4 ++-- .../skyblocker/skyblock/experiment/SuperpairsSolver.java | 16 +++++++++++----- .../skyblock/experiment/UltrasequencerSolver.java | 12 ++++++------ 4 files changed, 23 insertions(+), 17 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment') 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 ee88b98f..1a6f0b55 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ChronomatronSolver.java @@ -58,7 +58,7 @@ public class ChronomatronSolver extends ExperimentSolver { @Override protected void tick(Screen screen) { if (isEnabled() && screen instanceof GenericContainerScreen genericContainerScreen && genericContainerScreen.getTitle().getString().startsWith("Chronomatron (")) { - switch (state) { + switch (getState()) { case REMEMBER -> { Inventory inventory = genericContainerScreen.getScreenHandler().getInventory(); if (chronomatronCurrentSlot == 0) { @@ -66,7 +66,7 @@ public class ChronomatronSolver extends ExperimentSolver { if (inventory.getStack(index).hasEnchantments()) { if (chronomatronSlots.size() <= chronomatronChainLengthCount) { chronomatronSlots.add(TERRACOTTA_TO_GLASS.get(inventory.getStack(index).getItem())); - state = State.WAIT; + setState(State.WAIT); } else { chronomatronChainLengthCount++; } @@ -80,7 +80,7 @@ public class ChronomatronSolver extends ExperimentSolver { } case WAIT -> { if (genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString().startsWith("Timer: ")) { - state = State.SHOW; + setState(State.SHOW); } } case END -> { @@ -89,7 +89,7 @@ public class ChronomatronSolver extends ExperimentSolver { if (name.equals("Remember the pattern!")) { chronomatronChainLengthCount = 0; chronomatronCurrentOrdinal = 0; - state = State.REMEMBER; + setState(State.REMEMBER); } else { reset(); } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java index 91eabcfe..5dad908e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/ExperimentSolver.java @@ -15,8 +15,8 @@ public abstract class ExperimentSolver extends ContainerSolver { REMEMBER, WAIT, SHOW, END } - protected State state = State.REMEMBER; - protected final Map slots = new HashMap<>(); + private State state = State.REMEMBER; + private final Map slots = new HashMap<>(); protected ExperimentSolver(String containerName) { super(containerName); 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 117bcdf3..f40b0fa0 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/SuperpairsSolver.java @@ -31,17 +31,23 @@ public class SuperpairsSolver extends ExperimentSolver { return experimentsConfig.enableSuperpairsSolver; } + @Override + protected void start(GenericContainerScreen screen) { + super.start(screen); + setState(State.SHOW); + } + @Override protected void tick(Screen screen) { if (isEnabled() && screen instanceof GenericContainerScreen genericContainerScreen && genericContainerScreen.getTitle().getString().startsWith("Superpairs (")) { - if (state == State.SHOW) { + if (getState() == State.SHOW) { if (genericContainerScreen.getScreenHandler().getInventory().getStack(4).isOf(Items.CAULDRON)) { reset(); - } else if (slots.get(superpairsPrevClickedSlot) == null) { + } else if (getSlots().get(superpairsPrevClickedSlot) == null) { ItemStack itemStack = genericContainerScreen.getScreenHandler().getInventory().getStack(superpairsPrevClickedSlot); if (!(itemStack.isOf(Items.CYAN_STAINED_GLASS) || itemStack.isOf(Items.BLACK_STAINED_GLASS_PANE) || itemStack.isOf(Items.AIR))) { - slots.entrySet().stream().filter((entry -> ItemStack.areEqual(entry.getValue(), itemStack))).findAny().ifPresent(entry -> superpairsDuplicatedSlots.add(entry.getKey())); - slots.put(superpairsPrevClickedSlot, itemStack); + getSlots().entrySet().stream().filter((entry -> ItemStack.areEqual(entry.getValue(), itemStack))).findAny().ifPresent(entry -> superpairsDuplicatedSlots.add(entry.getKey())); + getSlots().put(superpairsPrevClickedSlot, itemStack); superpairsCurrentSlot = itemStack; } } @@ -57,7 +63,7 @@ public class SuperpairsSolver extends ExperimentSolver { for (Map.Entry indexStack : displaySlots.entrySet()){ int index = indexStack.getKey(); ItemStack displayStack = indexStack.getValue(); - ItemStack stack = slots.get(index); + 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)); 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 edda257c..90968fe2 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java @@ -34,7 +34,7 @@ public class UltrasequencerSolver extends ExperimentSolver { @Override protected void tick(Screen screen) { if (isEnabled() && screen instanceof GenericContainerScreen genericContainerScreen && genericContainerScreen.getTitle().getString().startsWith("Ultrasequencer (")) { - switch (state) { + switch (getState()) { case REMEMBER -> { Inventory inventory = genericContainerScreen.getScreenHandler().getInventory(); if (inventory.getStack(49).getName().getString().equals("Remember the pattern!")) { @@ -45,23 +45,23 @@ public class UltrasequencerSolver extends ExperimentSolver { if (name.equals("1")) { ultrasequencerNextSlot = index; } - slots.put(index, itemStack); + getSlots().put(index, itemStack); } } - state = State.WAIT; + setState(State.WAIT); } } case WAIT -> { if (genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString().startsWith("Timer: ")) { - state = State.SHOW; + setState(State.SHOW); } } case END -> { String name = genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString(); if (!name.startsWith("Timer: ")) { if (name.equals("Remember the pattern!")) { - slots.clear(); - state = State.REMEMBER; + getSlots().clear(); + setState(State.REMEMBER); } else { reset(); } -- cgit