aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorPeyton Brown <81496880+PeytonBrown@users.noreply.github.com>2025-07-07 21:47:07 -0400
committerGitHub <noreply@github.com>2025-07-07 21:47:07 -0400
commit2d8144c11c3b5224e0d894c40d9edb9129ecf3d4 (patch)
treeefd206af719446fac06284d67556b719f4208632 /src/main/java
parent912cde5bf60e1ff6d887fbc4e26a153bfecc3711 (diff)
downloadSkyblocker-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')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/HelperCategory.java33
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/HelperConfig.java113
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/experiment/ChronomatronSolver.java8
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/experiment/ExperimentSolver.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/experiment/UltrasequencerSolver.java20
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);
}