diff options
| author | Peyton Brown <81496880+PeytonBrown@users.noreply.github.com> | 2025-07-07 21:47:07 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-07 21:47:07 -0400 |
| commit | 2d8144c11c3b5224e0d894c40d9edb9129ecf3d4 (patch) | |
| tree | efd206af719446fac06284d67556b719f4208632 /src/main/java | |
| parent | 912cde5bf60e1ff6d887fbc4e26a153bfecc3711 (diff) | |
| download | Skyblocker-2d8144c11c3b5224e0d894c40d9edb9129ecf3d4.tar.gz Skyblocker-2d8144c11c3b5224e0d894c40d9edb9129ecf3d4.tar.bz2 Skyblocker-2d8144c11c3b5224e0d894c40d9edb9129ecf3d4.zip | |
Block incorrect clicks in experiment table (#1447)
* Initial Implementation
* Fix merge issues
Diffstat (limited to 'src/main/java')
5 files changed, 100 insertions, 78 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java index 9fbc1e67..b0dc0f67 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java @@ -1,4 +1,4 @@ - package de.hysky.skyblocker.config.categories; +package de.hysky.skyblocker.config.categories; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.ConfigUtils; @@ -73,18 +73,18 @@ public class HelperCategory { newValue -> config.helpers.enableCopyUnderbidPrice = newValue) .controller(ConfigUtils.createBooleanController()) .build()) - //Mythological Ritual - .group(OptionGroup.createBuilder() - .name(Text.translatable("skyblocker.config.helpers.mythologicalRitual")) - .collapsed(true) - .option(Option.<Boolean>createBuilder() - .name(Text.translatable("skyblocker.config.helpers.mythologicalRitual.enableMythologicalRitualHelper")) - .binding(defaults.helpers.mythologicalRitual.enableMythologicalRitualHelper, - () -> config.helpers.mythologicalRitual.enableMythologicalRitualHelper, - newValue -> config.helpers.mythologicalRitual.enableMythologicalRitualHelper = newValue) - .controller(ConfigUtils.createBooleanController()) - .build()) - .build()) + //Mythological Ritual + .group(OptionGroup.createBuilder() + .name(Text.translatable("skyblocker.config.helpers.mythologicalRitual")) + .collapsed(true) + .option(Option.<Boolean>createBuilder() + .name(Text.translatable("skyblocker.config.helpers.mythologicalRitual.enableMythologicalRitualHelper")) + .binding(defaults.helpers.mythologicalRitual.enableMythologicalRitualHelper, + () -> config.helpers.mythologicalRitual.enableMythologicalRitualHelper, + newValue -> config.helpers.mythologicalRitual.enableMythologicalRitualHelper = newValue) + .controller(ConfigUtils.createBooleanController()) + .build()) + .build()) //Jerry Timer .group(OptionGroup.createBuilder() @@ -125,6 +125,13 @@ public class HelperCategory { newValue -> config.helpers.experiments.enableUltrasequencerSolver = newValue) .controller(ConfigUtils.createBooleanController()) .build()) + .option(Option.<Boolean>createBuilder() + .name(Text.translatable("skyblocker.config.helpers.experiments.blockIncorrectClicks")) + .binding(defaults.helpers.experiments.blockIncorrectClicks, + () -> config.helpers.experiments.blockIncorrectClicks, + newValue -> config.helpers.experiments.blockIncorrectClicks = newValue) + .controller(ConfigUtils.createBooleanController()) + .build()) .build()) //Fishing Helper diff --git a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java index 5bbae4c4..6d3e3165 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java @@ -9,65 +9,67 @@ import java.util.ArrayList; import java.util.List; public class HelperConfig { - public boolean enableNewYearCakesHelper = true; + public boolean enableNewYearCakesHelper = true; - public boolean enableBitsTooltip = true; + public boolean enableBitsTooltip = true; - public boolean enableWardrobeHelper = true; + public boolean enableWardrobeHelper = true; public boolean enableDateCalculator = true; public boolean enableCopyUnderbidPrice = false; - public MythologicalRitual mythologicalRitual = new MythologicalRitual(); + public MythologicalRitual mythologicalRitual = new MythologicalRitual(); - public Jerry jerry = new Jerry(); + public Jerry jerry = new Jerry(); - public Experiments experiments = new Experiments(); + public Experiments experiments = new Experiments(); - public Fishing fishing = new Fishing(); + public Fishing fishing = new Fishing(); - public FairySouls fairySouls = new FairySouls(); + public FairySouls fairySouls = new FairySouls(); - public ChocolateFactory chocolateFactory = new ChocolateFactory(); + public ChocolateFactory chocolateFactory = new ChocolateFactory(); - public Carnival carnival = new Carnival(); + public Carnival carnival = new Carnival(); - public Bazaar bazaar = new Bazaar(); + public Bazaar bazaar = new Bazaar(); - public ItemPrice itemPrice = new ItemPrice(); + public ItemPrice itemPrice = new ItemPrice(); - public static class MythologicalRitual { - public boolean enableMythologicalRitualHelper = true; - } + public static class MythologicalRitual { + public boolean enableMythologicalRitualHelper = true; + } - public static class Jerry { - public boolean enableJerryTimer = false; - } + public static class Jerry { + public boolean enableJerryTimer = false; + } - public static class Experiments { - public boolean enableChronomatronSolver = true; + public static class Experiments { + public boolean enableChronomatronSolver = true; - public boolean enableSuperpairsSolver = true; + public boolean enableSuperpairsSolver = true; - public boolean enableUltrasequencerSolver = true; - } + public boolean enableUltrasequencerSolver = true; - public static class Fishing { - public boolean enableFishingHelper = true; + public boolean blockIncorrectClicks = false; + } + + public static class Fishing { + public boolean enableFishingHelper = true; @Deprecated - public transient boolean enableFishingHookDisplay = true; + public transient boolean enableFishingHookDisplay = true; - public boolean enableFishingTimer = false; + public boolean enableFishingTimer = false; @Deprecated - public transient boolean changeTimerColor = true; + public transient boolean changeTimerColor = true; @Deprecated - public transient float fishingTimerScale = 1f; + public transient float fishingTimerScale = 1f; - public boolean hideOtherPlayersRods = false; + public boolean hideOtherPlayersRods = false; public List<Location> fishingHudEnabledLocations = new ArrayList<>(List.of(Location.values())); @@ -91,48 +93,49 @@ public class HelperConfig { OFF, CROSSHAIR, HUD; + @Override public String toString() { return I18n.translate("skyblocker.config.helpers.fishing.fishingHookDisplay." + name()); } } - } + } - public static class FairySouls { - public boolean enableFairySoulsHelper = false; + public static class FairySouls { + public boolean enableFairySoulsHelper = false; - public boolean highlightFoundSouls = true; + public boolean highlightFoundSouls = true; - public boolean highlightOnlyNearbySouls = false; - } + public boolean highlightOnlyNearbySouls = false; + } - public static class ChocolateFactory { - public boolean enableChocolateFactoryHelper = true; + public static class ChocolateFactory { + public boolean enableChocolateFactoryHelper = true; - public boolean enableEggFinder = true; + public boolean enableEggFinder = true; - public boolean sendEggFoundMessages = true; + public boolean sendEggFoundMessages = true; - public Waypoint.Type waypointType = Waypoint.Type.WAYPOINT; + public Waypoint.Type waypointType = Waypoint.Type.WAYPOINT; - public boolean enableTimeTowerReminder = true; + public boolean enableTimeTowerReminder = true; - public boolean straySound = true; - } + public boolean straySound = true; + } - public static class Carnival { - public boolean catchAFishHelper = true; + public static class Carnival { + public boolean catchAFishHelper = true; - public boolean zombieShootoutHelper = true; - } + public boolean zombieShootoutHelper = true; + } - public static class Bazaar { - public boolean enableBazaarHelper = true; - } + public static class Bazaar { + public boolean enableBazaarHelper = true; + } - public static class ItemPrice { - public boolean enableItemPriceLookup = true; + public static class ItemPrice { + public boolean enableItemPriceLookup = true; - public boolean enableItemPriceRefresh = true; - } + public boolean enableItemPriceRefresh = true; + } } 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 f5ef1425..cb2b0a2e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/experiment/ChronomatronSolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/experiment/ChronomatronSolver.java @@ -128,8 +128,12 @@ public final class ChronomatronSolver extends ExperimentSolver { public boolean onClickSlot(int slot, ItemStack stack, int screenId) { if (getState() == State.SHOW) { Item item = chronomatronSlots.get(chronomatronCurrentOrdinal); - if ((stack.isOf(item) || ChronomatronSolver.TERRACOTTA_TO_GLASS.get(stack.getItem()) == item) && ++chronomatronCurrentOrdinal >= chronomatronSlots.size()) { - setState(ExperimentSolver.State.END); + if ((stack.isOf(item) || ChronomatronSolver.TERRACOTTA_TO_GLASS.get(stack.getItem()) == item)) { + if (++chronomatronCurrentOrdinal >= chronomatronSlots.size()) { + setState(ExperimentSolver.State.END); + } + } else { + return shouldBlockIncorrectClicks(); } } return super.onClickSlot(slot, stack, screenId); 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 9172f550..8f643842 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/experiment/ExperimentSolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/experiment/ExperimentSolver.java @@ -41,6 +41,10 @@ public abstract sealed class ExperimentSolver extends SimpleContainerSolver perm protected abstract boolean isEnabled(HelperConfig.Experiments experimentsConfig); + protected boolean shouldBlockIncorrectClicks() { + return SkyblockerConfigManager.get().helpers.experiments.blockIncorrectClicks; + } + @Override public void start(GenericContainerScreen screen) { state = State.REMEMBER; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/experiment/UltrasequencerSolver.java b/src/main/java/de/hysky/skyblocker/skyblock/experiment/UltrasequencerSolver.java index c1d1dcdc..a142ffab 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/experiment/UltrasequencerSolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/experiment/UltrasequencerSolver.java @@ -51,7 +51,7 @@ public final class UltrasequencerSolver extends ExperimentSolver { /** * Saves the shown items to {@link #slots the slot map}. */ - @SuppressWarnings({ "JavadocReference", "incomplete-switch" }) + @SuppressWarnings({"JavadocReference", "incomplete-switch"}) @Override protected void tick(GenericContainerScreen screen) { switch (getState()) { @@ -108,13 +108,17 @@ public final class UltrasequencerSolver extends ExperimentSolver { @SuppressWarnings("JavadocReference") @Override public boolean onClickSlot(int slot, ItemStack stack, int screenId) { - if (getState() == State.SHOW && slot == ultrasequencerNextSlot) { - int count = getSlots().get(ultrasequencerNextSlot).getCount() + 1; - getSlots().int2ObjectEntrySet().stream() - .filter(entry -> entry.getValue().getCount() == count) - .findAny() - .map(Int2ObjectMap.Entry::getIntKey) - .ifPresent(nextSlot -> this.ultrasequencerNextSlot = nextSlot); + if (getState() == State.SHOW) { + if (slot == ultrasequencerNextSlot) { + int count = getSlots().get(ultrasequencerNextSlot).getCount() + 1; + getSlots().int2ObjectEntrySet().stream() + .filter(entry -> entry.getValue().getCount() == count) + .findAny() + .map(Int2ObjectMap.Entry::getIntKey) + .ifPresent(nextSlot -> this.ultrasequencerNextSlot = nextSlot); + } else { + return shouldBlockIncorrectClicks(); + } } return super.onClickSlot(slot, stack, screenId); } |
