diff options
| author | Jakub <jakvb.kolodziej@gmail.com> | 2023-06-25 13:16:59 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-25 13:16:59 +0200 |
| commit | 5bd5e7d4881f34c1da9dcbde899f655de3777b96 (patch) | |
| tree | fcaf7de10025bbf5a33b5798b71d50c4f122a638 /src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java | |
| parent | f3f000a7e5a015aa7690502c8c3b74ce558decf6 (diff) | |
| parent | dc312c8db05bc9e9cd3f4fd8c039274270a4661b (diff) | |
| download | Skyblocker-5bd5e7d4881f34c1da9dcbde899f655de3777b96.tar.gz Skyblocker-5bd5e7d4881f34c1da9dcbde899f655de3777b96.tar.bz2 Skyblocker-5bd5e7d4881f34c1da9dcbde899f655de3777b96.zip | |
Merge branch 'master' into autorejoin2
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java')
| -rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java new file mode 100644 index 00000000..45d6c0c6 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/experiment/UltrasequencerSolver.java @@ -0,0 +1,80 @@ +package me.xmrvizzy.skyblocker.skyblock.experiment; + +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.gui.ColorHighlight; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; +import net.minecraft.inventory.Inventory; +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class UltrasequencerSolver extends ExperimentSolver { + private int ultrasequencerNextSlot; + + public UltrasequencerSolver() { + super("^Ultrasequencer \\(\\w+\\)$"); + } + + public int getUltrasequencerNextSlot() { + return ultrasequencerNextSlot; + } + + public void setUltrasequencerNextSlot(int ultrasequencerNextSlot) { + this.ultrasequencerNextSlot = ultrasequencerNextSlot; + } + + @Override + protected boolean isEnabled(SkyblockerConfig.Experiments experimentsConfig) { + return experimentsConfig.enableUltrasequencerSolver; + } + + @Override + protected void tick(Screen screen) { + if (isEnabled() && screen instanceof GenericContainerScreen genericContainerScreen && genericContainerScreen.getTitle().getString().startsWith("Ultrasequencer (")) { + switch (getState()) { + case REMEMBER -> { + Inventory inventory = genericContainerScreen.getScreenHandler().getInventory(); + if (inventory.getStack(49).getName().getString().equals("Remember the pattern!")) { + for (int index = 9; index < 45; index++) { + ItemStack itemStack = inventory.getStack(index); + String name = itemStack.getName().getString(); + if (name.matches("\\d+")) { + if (name.equals("1")) { + ultrasequencerNextSlot = index; + } + getSlots().put(index, itemStack); + } + } + setState(State.WAIT); + } + } + case WAIT -> { + if (genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString().startsWith("Timer: ")) { + setState(State.SHOW); + } + } + case END -> { + String name = genericContainerScreen.getScreenHandler().getInventory().getStack(49).getName().getString(); + if (!name.startsWith("Timer: ")) { + if (name.equals("Remember the pattern!")) { + getSlots().clear(); + setState(State.REMEMBER); + } else { + reset(); + } + } + } + } + } else { + reset(); + } + } + + @Override + protected List<ColorHighlight> getColors(String[] groups, Map<Integer, ItemStack> slots) { + return getState() == State.SHOW && ultrasequencerNextSlot != 0 ? List.of(ColorHighlight.green(ultrasequencerNextSlot)) : new ArrayList<>(); + } +} |
