diff options
| author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-06-19 18:57:43 +0300 |
|---|---|---|
| committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-07-22 14:20:35 +0800 |
| commit | 4c398333b9802a9000cc65d50ae4a2d13f300ca8 (patch) | |
| tree | 2b2e52431ddfc7610cc0070f5e5abe3c7356a02d /src/main/java/de/hysky/skyblocker/skyblock | |
| parent | 6541bb6aa43a7141ac259ee34a597891d6a45689 (diff) | |
| download | Skyblocker-4c398333b9802a9000cc65d50ae4a2d13f300ca8.tar.gz Skyblocker-4c398333b9802a9000cc65d50ae4a2d13f300ca8.tar.bz2 Skyblocker-4c398333b9802a9000cc65d50ae4a2d13f300ca8.zip | |
Refactor container matcher implementations into interfaces
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock')
31 files changed, 220 insertions, 177 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakeBagHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakeBagHelper.java index 747ce9b4..aa5d1cd4 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakeBagHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakeBagHelper.java @@ -2,7 +2,7 @@ package de.hysky.skyblocker.skyblock.accessories.newyearcakes; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.render.gui.ColorHighlight; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; +import de.hysky.skyblocker.utils.container.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.client.MinecraftClient; import net.minecraft.item.ItemStack; @@ -16,12 +16,12 @@ public class NewYearCakeBagHelper extends ContainerSolver { } @Override - protected boolean isEnabled() { + public boolean isEnabled() { return SkyblockerConfigManager.get().helpers.enableNewYearCakesHelper; } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { MinecraftClient client = MinecraftClient.getInstance(); if (client.player != null) { for (Slot slot : client.player.currentScreenHandler.slots) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java index c403a81b..e31d4238 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/accessories/newyearcakes/NewYearCakesHelper.java @@ -3,7 +3,7 @@ package de.hysky.skyblocker.skyblock.accessories.newyearcakes; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.gui.ColorHighlight; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; +import de.hysky.skyblocker.utils.container.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.IntOpenHashSet; import it.unimi.dsi.fastutil.ints.IntSet; @@ -20,7 +20,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class NewYearCakesHelper extends ContainerSolver { - private static final Logger LOGGER = LoggerFactory.getLogger(NewYearCakeBagHelper.class); + private static final Logger LOGGER = LoggerFactory.getLogger(NewYearCakesHelper.class); private static final Pattern NEW_YEAR_CAKE = Pattern.compile("New Year Cake \\(Year (?<year>\\d+)\\)"); private static final Pattern NEW_YEAR_CAKE_PURCHASE = Pattern.compile("You purchased New Year Cake \\(Year (?<year>\\d+)\\) for .+ coins!"); private static final NumberFormat NUMBER_FORMAT = NumberFormat.getInstance(Locale.US); @@ -49,7 +49,7 @@ public class NewYearCakesHelper extends ContainerSolver { } @Override - protected boolean isEnabled() { + public boolean isEnabled() { return SkyblockerConfigManager.get().helpers.enableNewYearCakesHelper; } @@ -65,7 +65,7 @@ public class NewYearCakesHelper extends ContainerSolver { } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { String profile = Utils.getProfile(); if (cakes.isEmpty() || !cakes.containsKey(profile) || cakes.containsKey(profile) && cakes.get(profile).isEmpty()) return List.of(); List<ColorHighlight> highlights = new ArrayList<>(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java index 04f6536d..e1d2c59e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java @@ -6,7 +6,7 @@ import de.hysky.skyblocker.skyblock.item.tooltip.adders.LineSmoothener; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.RegexUtils; import de.hysky.skyblocker.utils.render.gui.ColorHighlight; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; +import de.hysky.skyblocker.utils.container.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; @@ -89,12 +89,12 @@ public class ChocolateFactorySolver extends ContainerSolver { } @Override - protected boolean isEnabled() { + public boolean isEnabled() { return SkyblockerConfigManager.get().helpers.chocolateFactory.enableChocolateFactoryHelper; } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { updateFactoryInfo(slots); List<ColorHighlight> highlights = new ArrayList<>(); @@ -240,7 +240,7 @@ public class ChocolateFactorySolver extends ContainerSolver { } @Override - protected void reset() { + public void reset() { cpsIncreaseFactors.clear(); totalChocolate = -1L; totalCps = -1.0; @@ -264,6 +264,7 @@ public class ChocolateFactorySolver extends ContainerSolver { private record Rabbit(double cpsIncrease, long cost, int slot) {} + //Todo: Merge this into the outer class once #786 is merged public static final class Tooltip extends TooltipAdder { public Tooltip() { super("^Chocolate Factory$", 0); //The priority doesn't really matter here as this is the only tooltip adder for the Chocolate Factory. @@ -394,5 +395,10 @@ public class ChocolateFactorySolver extends ContainerSolver { } return Text.literal(builder.toString()).formatted(Formatting.GOLD); } + + @Override + public boolean isEnabled() { + return SkyblockerConfigManager.get().helpers.chocolateFactory.enableChocolateFactoryHelper; + } } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusHelper.java index d317a2e8..de9bd048 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusHelper.java @@ -3,7 +3,7 @@ package de.hysky.skyblocker.skyblock.dungeon; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.render.gui.ColorHighlight; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; +import de.hysky.skyblocker.utils.container.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.component.DataComponentTypes; import net.minecraft.item.ItemStack; @@ -12,18 +12,17 @@ import java.util.ArrayList; import java.util.List; public class CroesusHelper extends ContainerSolver { - public CroesusHelper() { super("^Croesus$"); } @Override - protected boolean isEnabled() { + public boolean isEnabled() { return SkyblockerConfigManager.get().dungeons.croesusHelper; } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { List<ColorHighlight> highlights = new ArrayList<>(); for (Int2ObjectMap.Entry<ItemStack> entry : slots.int2ObjectEntrySet()) { ItemStack stack = entry.getValue(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusProfit.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusProfit.java index 0f459c9d..e0bb2748 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusProfit.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/CroesusProfit.java @@ -1,16 +1,13 @@ package de.hysky.skyblocker.skyblock.dungeon; -import com.google.gson.JsonObject; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.render.gui.ColorHighlight; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; +import de.hysky.skyblocker.utils.container.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.Util; - import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -21,18 +18,18 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; public class CroesusProfit extends ContainerSolver { - private static final Pattern ESSENCE_PATTERN = Pattern.compile("(?<type>[A-Za-z]+) Essence x(?<amount>[0-9]+)"); + private static final Pattern ESSENCE_PATTERN = Pattern.compile("(?<type>[A-Za-z]+) Essence x(?<amount>\\d+)"); public CroesusProfit() { super(".*Catacombs - Floor.*"); } @Override - protected boolean isEnabled() { + public boolean isEnabled() { return SkyblockerConfigManager.get().dungeons.dungeonChestProfit.croesusProfit; } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { List<ColorHighlight> highlights = new ArrayList<>(); ItemStack bestChest = null, secondBestChest = null; double bestValue = 0, secondBestValue = 0; // If negative value of chest - it is out of the question @@ -82,7 +79,7 @@ public class CroesusProfit extends ContainerSolver { } else if (lineString.isEmpty()) { processingContents = false; } else if (lineString.contains("Coins") && !processingContents) { - chestPrice = Integer.parseInt(lineString.replaceAll(",", "").replaceAll("\\D", "")); + chestPrice = Integer.parseInt(lineString.replace(",", "").replaceAll("\\D", "")); } if (processingContents) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java index 7a966b48..4ee81256 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/ColorTerminal.java @@ -1,8 +1,9 @@ package de.hysky.skyblocker.skyblock.dungeon.terminal; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.container.AbstractContainerSolver; import de.hysky.skyblocker.utils.render.gui.ColorHighlight; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; +import de.hysky.skyblocker.utils.container.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -27,20 +28,20 @@ public final class ColorTerminal extends ContainerSolver implements TerminalSolv } @Override - protected boolean isEnabled() { + public boolean isEnabled() { targetColor = null; return SkyblockerConfigManager.get().dungeons.terminals.solveColor; } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { - trimEdges(slots, 6); + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { + AbstractContainerSolver.trimEdges(slots, 6); List<ColorHighlight> highlights = new ArrayList<>(); String colorString = groups[0]; if (targetColor == null) { targetColor = colorFromName.get(colorString); if (targetColor == null) { - LOGGER.error("[Skyblocker] Couldn't find dye color corresponding to \"" + colorString + "\""); + LOGGER.error("[Skyblocker] Couldn't find dye color corresponding to \"{}\"", colorString); return Collections.emptyList(); } } @@ -54,7 +55,7 @@ public final class ColorTerminal extends ContainerSolver implements TerminalSolv } @Override - protected boolean onClickSlot(int slot, ItemStack stack, int screenId, String[] groups) { + public boolean onClickSlot(int slot, ItemStack stack, int screenId) { if (stack.hasGlint() || !targetColor.equals(itemColor.get(stack.getItem()))) { return shouldBlockIncorrectClicks(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/LightsOnTerminal.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/LightsOnTerminal.java index 4975b90b..2c024633 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/LightsOnTerminal.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/LightsOnTerminal.java @@ -1,13 +1,13 @@ package de.hysky.skyblocker.skyblock.dungeon.terminal; -import java.util.List; - +import de.hysky.skyblocker.utils.container.ContainerSolver; import de.hysky.skyblocker.utils.render.gui.ColorHighlight; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import java.util.List; + /** * The terminal where you change all the panes that are red to green. * @@ -21,17 +21,17 @@ public final class LightsOnTerminal extends ContainerSolver implements TerminalS } @Override - protected boolean isEnabled() { + public boolean isEnabled() { return shouldBlockIncorrectClicks(); } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { return EMPTY; } @Override - protected boolean onClickSlot(int slot, ItemStack stack, int screenId, String[] groups) { + public boolean onClickSlot(int slot, ItemStack stack, int screenId) { return stack.isOf(Items.LIME_STAINED_GLASS_PANE); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/OrderTerminal.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/OrderTerminal.java index 05998988..e628cf8f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/OrderTerminal.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/OrderTerminal.java @@ -1,8 +1,9 @@ package de.hysky.skyblocker.skyblock.dungeon.terminal; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.container.AbstractContainerSolver; import de.hysky.skyblocker.utils.render.gui.ColorHighlight; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; +import de.hysky.skyblocker.utils.container.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; @@ -12,7 +13,7 @@ import java.util.Collections; import java.util.List; public final class OrderTerminal extends ContainerSolver implements TerminalSolver { - private final int PANES_NUM = 14; + private static final int PANES_NUM = 14; private int[] orderedSlots; private int currentNum = Integer.MAX_VALUE; @@ -21,14 +22,14 @@ public final class OrderTerminal extends ContainerSolver implements TerminalSolv } @Override - protected boolean isEnabled() { + public boolean isEnabled() { orderedSlots = null; currentNum = 0; return SkyblockerConfigManager.get().dungeons.terminals.solveOrder; } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { if(orderedSlots == null && !orderSlots(slots)) return Collections.emptyList(); while(currentNum < PANES_NUM && Items.LIME_STAINED_GLASS_PANE.equals(slots.get(orderedSlots[currentNum]).getItem())) @@ -42,22 +43,21 @@ public final class OrderTerminal extends ContainerSolver implements TerminalSolv } public boolean orderSlots(Int2ObjectMap<ItemStack> slots) { - trimEdges(slots, 4); + AbstractContainerSolver.trimEdges(slots, 4); orderedSlots = new int[PANES_NUM]; for(Int2ObjectMap.Entry<ItemStack> slot : slots.int2ObjectEntrySet()) { if(Items.AIR.equals(slot.getValue().getItem())) { orderedSlots = null; return false; } - else - orderedSlots[slot.getValue().getCount() - 1] = slot.getIntKey(); + else orderedSlots[slot.getValue().getCount() - 1] = slot.getIntKey(); } currentNum = 0; return true; } @Override - protected boolean onClickSlot(int slot, ItemStack stack, int screenId, String[] groups) { + public boolean onClickSlot(int slot, ItemStack stack, int screenId) { if (stack == null || stack.isEmpty()) return false; if (!stack.isOf(Items.RED_STAINED_GLASS_PANE) || stack.getCount() != currentNum + 1) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/StartsWithTerminal.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/StartsWithTerminal.java index 8b0f1801..a9ff0e80 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/StartsWithTerminal.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/StartsWithTerminal.java @@ -1,8 +1,9 @@ package de.hysky.skyblocker.skyblock.dungeon.terminal; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.container.AbstractContainerSolver; import de.hysky.skyblocker.utils.render.gui.ColorHighlight; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; +import de.hysky.skyblocker.utils.container.ContainerSolver; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectSet; @@ -22,13 +23,13 @@ public final class StartsWithTerminal extends ContainerSolver implements Termina } @Override - protected boolean isEnabled() { + public boolean isEnabled() { return SkyblockerConfigManager.get().dungeons.terminals.solveStartsWith; } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { - trimEdges(slots, 6); + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { + AbstractContainerSolver.trimEdges(slots, 6); setupState(slots); String prefix = groups[0]; @@ -50,7 +51,7 @@ public final class StartsWithTerminal extends ContainerSolver implements Termina } @Override - protected boolean onClickSlot(int slot, ItemStack stack, int screenId, String[] groups) { + public boolean onClickSlot(int slot, ItemStack stack, int screenId) { //Some random glass pane was clicked or something if (!trackedItemStates.containsKey(slot) || stack == null || stack.isEmpty()) return false; @@ -74,7 +75,7 @@ public final class StartsWithTerminal extends ContainerSolver implements Termina return false; } - //We only setup the state when all items aren't null or empty. This prevents the state from being reset due to unsent items or server lag spikes/bad TPS (fix ur servers Hypixel) + //We only set up the state when all items aren't null or empty. This prevents the state from being reset due to unsent items or server lag spikes/bad TPS (fix ur servers Hypixel) private void setupState(Int2ObjectMap<ItemStack> usefulSlots) { Predicate<Int2ObjectMap.Entry<ItemStack>> notNullOrEmpty = e -> e.getValue() != null && !e.getValue().isEmpty(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/TerminalSolver.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/TerminalSolver.java index f20c35b5..cf384f08 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/TerminalSolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/terminal/TerminalSolver.java @@ -3,7 +3,6 @@ package de.hysky.skyblocker.skyblock.dungeon.terminal; import de.hysky.skyblocker.config.SkyblockerConfigManager; public sealed interface TerminalSolver permits ColorTerminal, LightsOnTerminal, OrderTerminal, StartsWithTerminal { - default boolean shouldBlockIncorrectClicks() { return SkyblockerConfigManager.get().dungeons.terminals.blockIncorrectClicks; } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/experiment/ChronomatronSolver.java b/src/main/java/de/hysky/skyblocker/skyblock/experiment/ChronomatronSolver.java index 308452ef..a4d34a1b 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/experiment/ChronomatronSolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/experiment/ChronomatronSolver.java @@ -103,7 +103,7 @@ public final class ChronomatronSolver extends ExperimentSolver { } @Override - protected List<ColorHighlight> getColors(String[] groups, Int2ObjectMap<ItemStack> slots) { + public List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots) { List<ColorHighlight> highlights = new ArrayList<>(); if (getState() == State.SHOW && chronomatronSlots.size() > chronomatronCurrentOrdinal) { for (Int2ObjectMap.Entry<ItemStack> indexStack : slots.int2ObjectEntrySet()) { @@ -119,8 +119,7 @@ public final class ChronomatronSolver extends ExperimentSolver { } @Override - protected void reset() { - super.reset(); + public void reset() { chronomatronSlots.clear(); chronomatronChainLengthCount = 0; chronomatronCurrentSlot = 0; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/experiment/ExperimentSolver.java b/src/main/java/de/hysky/skyblocker/skyblock/experiment/ExperimentSolver.java index ad2800e0..6339eb39 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/experiment/ExperimentSolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/experiment/ExperimentSolver.java @@ -2,16 +2,18 @@ package de.hysky.skyblocker.skyblock.experiment; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.config.configs.HelperConfig; -import de.hysky.skyblocker.utils.render.gui.ContainerSolver; +import de.hysky.skyblocker.utils.container.ContainerSolver; import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; import net.minecraft.item.ItemStack; +import org.intellij.lang.annotations.Language; +import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Map; -public sealed abstract class ExperimentSolver extends ContainerSolver permits ChronomatronSolver, SuperpairsSolver, UltrasequencerSolver { +public abstract sealed class ExperimentSolver extends ContainerSolver permits ChronomatronSolver, SuperpairsSolver, UltrasequencerSolver { public enum State { REMEMBER, WAIT, SHOW, END } @@ -19,7 +21,7 @@ public sealed abstract class ExperimentSolver extends ContainerSolver permits Ch private State state = State.REMEMBER; private final Map<Integer, ItemStack> slots = new HashMap<>(); - protected ExperimentSolver(String containerName) { + protected ExperimentSolver(@NotNull @Language("RegExp") String containerName) { super(containerName); } @@ -36,22 +38,20 @@ public sealed abstract class ExperimentSolver extends ContainerSolver permits Ch } @Override - protected final boolean isEnabled() { + public final boolean isEnabled() { return isEnabled(SkyblockerConfigManager.get().helpers.experiments); } protected abstract boolean isEnabled(HelperConfig.Experiments experimentsConfig); @Override - protected void start(GenericContainerScreen screen) { - super.start(screen); + public void start(GenericContainerScreen screen) { state = State.REMEMBER; ScreenEvents.afterTick(screen).register(this::tick); } @Override - protected void reset() { - super.reset(); + public void reset() { state = State.REMEMBER; slots.clear(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/experiment/SuperpairsSolver.java b/src/main/java/de/hysky/skyblocker/skyblock/experiment/SuperpairsSolver.java index 5c2ed152..f2d4c55d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/experiment/SuperpairsSolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/experiment/SuperpairsSolver.java @@ -33,14 +33,12 @@ public final class SuperpairsSolver extends ExperimentSolver { } @Override - protected void start(GenericContainerScreen screen) { - super.start(screen); + public void start(GenericContainerScreen screen) { setState(State.SHOW); } |
