diff options
| author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-09-16 12:34:18 +0200 |
|---|---|---|
| committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-09-16 12:34:18 +0200 |
| commit | 4293cfd919c3c93d4532534f722c407d7ad1370d (patch) | |
| tree | f9f612f021ef7f4283d74312edfaca30badc6749 /src/main/java/at/hannibal2/skyhanni/config | |
| parent | 538e3ceb76f8e0b590291ce9aa90aa94896cdcb6 (diff) | |
| parent | 024ba52fb69b6cd44b4e31542867f802de656f15 (diff) | |
| download | SkyHanni-cum.tar.gz SkyHanni-cum.tar.bz2 SkyHanni-cum.zip | |
Merge branch 'beta' into cumcum
# Conflicts:
# src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt
# src/main/java/at/hannibal2/skyhanni/config/features/AshfangConfig.java
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config')
30 files changed, 1034 insertions, 197 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt b/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt index 4aa47612e..23e9b6261 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt @@ -82,11 +82,14 @@ class ConfigManager { } lateinit var features: Features + lateinit var sackData: SackData + private set private val logger = LorenzLogger("config_manager") var configDirectory = File("config/skyhanni") private var configFile: File? = null + private var sackFile: File? = null lateinit var processor: MoulConfigProcessor<Features> fun firstLoad() { @@ -96,6 +99,7 @@ class ConfigManager { configDirectory.mkdir() configFile = File(configDirectory, "config.json") + sackFile = File(configDirectory, "sacks.json") logger.log("Trying to load config from $configFile") @@ -133,6 +137,28 @@ class ConfigManager { } } + if (sackFile!!.exists()) { + try { + val inputStreamReader = InputStreamReader(FileInputStream(sackFile!!), StandardCharsets.UTF_8) + val bufferedReader = BufferedReader(inputStreamReader) + val builder = StringBuilder() + for (line in bufferedReader.lines()) { + builder.append(line) + builder.append("\n") + } + + + logger.log("load-sacks-now") + sackData = gson.fromJson( + builder.toString(), + SackData::class.java + ) + logger.log("Loaded sacks from file") + } catch (error: Exception) { + error.printStackTrace() + } + } + if (!::features.isInitialized) { logger.log("Creating blank config and saving to file") features = Features() @@ -143,6 +169,12 @@ class ConfigManager { saveConfig("auto-save-60s") } + if (!::sackData.isInitialized) { + logger.log("Creating blank sack data and saving") + sackData = SackData() + saveSackData("blank config") + } + val features = SkyHanniMod.feature processor = MoulConfigProcessor(SkyHanniMod.feature) BuiltinMoulConfigGuis.addProcessors(processor) @@ -185,4 +217,20 @@ class ConfigManager { e.printStackTrace() } } + + fun saveSackData(reason: String) { + logger.log("saveSackData: $reason") + val file = sackFile ?: throw Error("Can not save sacks, sackFile is null!") + try { + logger.log("Saving sack file") + file.parentFile.mkdirs() + file.createNewFile() + BufferedWriter(OutputStreamWriter(FileOutputStream(file), StandardCharsets.UTF_8)).use { writer -> + writer.write(gson.toJson(SkyHanniMod.sackData)) + } + } catch (e: IOException) { + logger.log("Could not save sacks file to $file") + e.printStackTrace() + } + } }
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/config/FeatureToggle.kt b/src/main/java/at/hannibal2/skyhanni/config/FeatureToggle.kt new file mode 100644 index 000000000..bf9db0553 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/FeatureToggle.kt @@ -0,0 +1,15 @@ +package at.hannibal2.skyhanni.config + +import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean + +/** + * Annotate a [ConfigEditorBoolean] to indicate that it is a feature toggle. + */ +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.FIELD) +annotation class FeatureToggle( + /** + * Indicate that this field being true means the corresponding feature is enabled. + */ + val trueIsEnabled: Boolean = true, +) diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java index 425c0aaa4..149f66020 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/Features.java +++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java @@ -24,7 +24,7 @@ public class Features extends Config { @Override public List<Social> getSocials() { return Arrays.asList( - Social.forLink("Join our Discord", DISCORD, "https://discord.gg/8DXVN4BJz3"), + Social.forLink("Join our Discord", DISCORD, "https://discord.com/invite/skyhanni-997079228510117908"), Social.forLink("Look at the code", GITHUB, "https://github.com/hannibal002/SkyHanni") ); } diff --git a/src/main/java/at/hannibal2/skyhanni/config/SackData.java b/src/main/java/at/hannibal2/skyhanni/config/SackData.java new file mode 100644 index 000000000..61febed74 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/SackData.java @@ -0,0 +1,26 @@ +package at.hannibal2.skyhanni.config; + +import at.hannibal2.skyhanni.data.SackItem; +import at.hannibal2.skyhanni.utils.NEUInternalName; +import com.google.gson.annotations.Expose; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class SackData { + + @Expose + public Map<UUID, PlayerSpecific> players = new HashMap<>(); + + public static class PlayerSpecific { + @Expose + public Map<String, ProfileSpecific> profiles = new HashMap<>(); + } + + public static class ProfileSpecific { + + @Expose + public Map<NEUInternalName, SackItem> sackContents = new HashMap<>(); + } +}
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/config/Storage.java b/src/main/java/at/hannibal2/skyhanni/config/Storage.java index a2af0ed79..da3ccd8f4 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/Storage.java +++ b/src/main/java/at/hannibal2/skyhanni/config/Storage.java @@ -10,6 +10,7 @@ import at.hannibal2.skyhanni.features.garden.visitor.VisitorReward; import at.hannibal2.skyhanni.features.misc.EnderNode; import at.hannibal2.skyhanni.features.misc.FrozenTreasure; import at.hannibal2.skyhanni.features.misc.ghostcounter.GhostData; +import at.hannibal2.skyhanni.features.misc.powdertracker.PowderChestReward; import at.hannibal2.skyhanni.features.rift.area.westvillage.KloonTerminal; import at.hannibal2.skyhanni.utils.LorenzVec; import at.hannibal2.skyhanni.utils.NEUInternalName; @@ -21,6 +22,12 @@ import java.util.*; public class Storage { @Expose + public boolean hasPlayedBefore = false; + + @Expose + public Map<String, List<String>> knownFeatureToggles = new HashMap<>(); + + @Expose public Map<Long, List<CropType>> gardenJacobFarmingContestTimes = new HashMap<>(); @Expose @@ -99,7 +106,7 @@ public class Storage { public static class GardenStorage { @Expose - public int experience = -1; + public Long experience = null; @Expose public Map<CropType, Long> cropCounter = new HashMap<>(); @@ -229,7 +236,7 @@ public class Storage { public long lastComposterEmptyWarningTime = 0; @Expose - public FarmingWeightConfig faramingWeight = new FarmingWeightConfig(); + public FarmingWeightConfig farmingWeight = new FarmingWeightConfig(); public static class FarmingWeightConfig { @@ -267,6 +274,17 @@ public class Storage { } @Expose + public Map<Integer, PowderTracker> powderTracker = new HashMap<>(); + + public static class PowderTracker { + @Expose + public int totalChestPicked = 0; + + @Expose + public Map<PowderChestReward, Long> rewards = new HashMap<>(); + } + + @Expose public FrozenTreasureTracker frozenTreasureTracker = new FrozenTreasureTracker(); public static class FrozenTreasureTracker { diff --git a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt index b87961a2c..69fc0c83a 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt +++ b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt @@ -27,10 +27,11 @@ import at.hannibal2.skyhanni.features.misc.CollectionTracker import at.hannibal2.skyhanni.features.misc.MarkedPlayerManager import at.hannibal2.skyhanni.features.misc.discordrpc.DiscordRPCManager import at.hannibal2.skyhanni.features.misc.ghostcounter.GhostUtil +import at.hannibal2.skyhanni.features.misc.massconfiguration.DefaultConfigFeatures import at.hannibal2.skyhanni.features.slayer.SlayerItemProfitTracker import at.hannibal2.skyhanni.test.PacketTest import at.hannibal2.skyhanni.test.SkyHanniConfigSearchResetCommand -import at.hannibal2.skyhanni.test.SkyHanniTestCommand +import at.hannibal2.skyhanni.test.SkyHanniDebugsAndTests import at.hannibal2.skyhanni.test.TestBingo import at.hannibal2.skyhanni.test.command.* import at.hannibal2.skyhanni.utils.APIUtil @@ -105,6 +106,11 @@ object Commands { registerCommand("skyhanni", "Opens the main SkyHanni config", openMainMenu) registerCommand("ff", "Opens the Farming Fortune Guide") { openFortuneGuide() } registerCommand("shcommands", "Shows this list") { commandHelp(it) } + registerCommand0("shdefaultoptions", "Select default options", { + DefaultConfigFeatures.onCommand( + it.getOrNull(0) ?: "null", it.getOrNull(1) ?: "null" + ) + }, DefaultConfigFeatures::onComplete) } private fun usersNormal() { @@ -177,11 +183,11 @@ object Commands { registerCommand( "shdebugdata", "Prints debug data in the clipboard" - ) { SkyHanniTestCommand.debugData(it) } + ) { SkyHanniDebugsAndTests.debugData(it) } registerCommand( "shversion", "Prints the SkyHanni version in the chat" - ) { SkyHanniTestCommand.debugVersion() } + ) { SkyHanniDebugsAndTests.debugVersion() } registerCommand( "shcarrot", "Toggles receiving the 12 fortune from carrots" @@ -192,7 +198,7 @@ object Commands { registerCommand("shtestbingo", "dev command") { TestBingo.toggle() } registerCommand("shprintbingohelper", "dev command") { BingoNextStepHelper.command() } registerCommand("shreloadbingodata", "dev command") { BingoCardDisplay.command() } - registerCommand("shtestgardenvisitors", "dev command") { SkyHanniTestCommand.testGardenVisitors() } + registerCommand("shtestgardenvisitors", "dev command") { SkyHanniDebugsAndTests.testGardenVisitors() } registerCommand("shtestcomposter", "dev command") { ComposterOverlay.onCommand(it) } registerCommand("shtestinquisitor", "dev command") { InquisitorWaypointShare.test() } registerCommand("shshowcropmoneycalculation", "dev command") { CropMoneyDisplay.toggleShowCalculation() } @@ -204,21 +210,21 @@ object Commands { } private fun developersCodingHelp() { - registerCommand("shtest", "Unused test command.") { SkyHanniTestCommand.testCommand(it) } + registerCommand("shtest", "Unused test command.") { SkyHanniDebugsAndTests.testCommand(it) } registerCommand("shreloadlocalrepo", "Reloading the local repo data") { SkyHanniMod.repo.reloadLocalRepo() } registerCommand("shchathistory", "Show the unfiltered chat history") { ChatManager.openChatFilterGUI() } registerCommand( "shstoplisteners", "Unregistering all loaded forge event listeners" - ) { SkyHanniTestCommand.stopListeners() } + ) { SkyHanniDebugsAndTests.stopListeners() } registerCommand( "shreloadlisteners", "Trying to load all forge event listeners again. Might not work at all" - ) { SkyHanniTestCommand.reloadListeners() } + ) { SkyHanniDebugsAndTests.reloadListeners() } registerCommand( "shcopylocation", "Copies the player location as LorenzVec format to the clipboard" - ) { SkyHanniTestCommand.copyLocation(it) } + ) { SkyHanniDebugsAndTests.copyLocation(it) } registerCommand( "shcopyentities", "Copies entities in the specified radius around the player to the clipboard" @@ -241,6 +247,10 @@ object Commands { "shtestmessage", "Sends a custom chat message client side in the chat" ) { TestChatCommand.command(it) } + registerCommand( + "shcopyinternalname", + "Copies the internal name of the item in hand to the clipboard." + ) { SkyHanniDebugsAndTests.copyItemInternalName() } } private fun internalCommands() { @@ -294,7 +304,7 @@ object Commands { @JvmStatic fun openFortuneGuide() { if (!LorenzUtils.inSkyBlock) { - LorenzUtils.chat("§cJoin Skyblock to open the fortune guide!") + LorenzUtils.chat("§cJoin SkyBlock to open the fortune guide!") } else { CaptureFarmingGear.captureFarmingGear() SkyHanniMod.screenToOpen = FFGuideGUI() @@ -308,8 +318,24 @@ object Commands { config.outdatedItems.clear() } - private fun registerCommand(name: String, description: String, function: (Array<String>) -> Unit) { - ClientCommandHandler.instance.registerCommand(SimpleCommand(name, createCommand(function))) + private fun registerCommand( + name: String, + description: String, + function: (Array<String>) -> Unit + ) = registerCommand0(name, description, function) + + private fun registerCommand0( + name: String, + description: String, + function: (Array<String>) -> Unit, + autoComplete: ((Array<String>) -> List<String>) = { listOf() } + ) { + ClientCommandHandler.instance.registerCommand( + SimpleCommand( + name, + createCommand(function) + ) { _, b, _ -> autoComplete(b) } + ) commands.add(CommandInfo(name, description, currentCategory)) } diff --git a/src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java b/src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java index fa2c310de..9ff8ade64 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java +++ b/src/main/java/at/hannibal2/skyhanni/config/commands/SimpleCommand.java @@ -32,9 +32,9 @@ public class SimpleCommand extends CommandBase { public abstract void processCommand(ICommandSender sender, String[] args); } - public abstract static class TabCompleteRunnable { + public interface TabCompleteRunnable { - public abstract List<String> tabComplete(ICommandSender sender, String[] args, BlockPos pos); + List<String> tabComplete(ICommandSender sender, String[] args, BlockPos pos); } public boolean canCommandSenderUseCommand(ICommandSender sender) { diff --git a/src/main/java/at/hannibal2/skyhanni/config/core/config/Position.java b/src/main/java/at/hannibal2/skyhanni/config/core/config/Position.java index 5ce2cafce..329bcd028 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/core/config/Position.java +++ b/src/main/java/at/hannibal2/skyhanni/config/core/config/Position.java @@ -19,6 +19,7 @@ package at.hannibal2.skyhanni.config.core.config; +import at.hannibal2.skyhanni.SkyHanniMod; import com.google.gson.annotations.Expose; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; @@ -29,6 +30,9 @@ public class Position { @Expose private int y; @Expose + private float scale = 1F; + + @Expose private boolean centerX; @Expose private boolean centerY; @@ -40,6 +44,14 @@ public class Position { this(x, y, false, false); } + public Position(int x, int y, float scale) { + this.x = x; + this.y = y; + this.centerX = false; + this.centerY = true; + this.scale = scale; + } + public Position(int x, int y, boolean centerX, boolean centerY) { this.x = x; this.y = y; @@ -52,6 +64,20 @@ public class Position { this.y = other.y; this.centerX = other.centerX; this.centerY = other.centerY; + this.scale = other.getScale(); + } + + public float getEffectiveScale() { + return Math.max(Math.min(getScale() * SkyHanniMod.getFeature().gui.globalScale, 10F), 0.1F); + } + + public float getScale() { + if (scale == 0) return 1f; + return scale; + } + + public void setScale(float newScale) { + scale = Math.max(Math.min(10F, newScale), 0.1f); } public int getRawX() { diff --git a/src/main/java/at/hannibal2/skyhanni/config/core/config/gui/GuiPositionEditor.kt b/src/main/java/at/hannibal2/skyhanni/config/core/config/gui/GuiPositionEditor.kt index e3b828407..d69fbeeae 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/core/config/gui/GuiPositionEditor.kt +++ b/src/main/java/at/hannibal2/skyhanni/config/core/config/gui/GuiPositionEditor.kt @@ -25,6 +25,7 @@ import at.hannibal2.skyhanni.data.GuiEditManager.Companion.getDummySize import at.hannibal2.skyhanni.data.OtherInventoryData import at.hannibal2.skyhanni.utils.GuiRenderUtils import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.round import net.minecraft.client.Minecraft import net.minecraft.client.gui.GuiScreen import net.minecraft.client.gui.ScaledResolution @@ -86,7 +87,7 @@ class GuiPositionEditor(private val positions: List<Position>, private val borde } val pos = positions[displayPos] - val location = "§7x: §e${pos.rawX}§7, y: §e${pos.rawY}" + val location = "§7x: §e${pos.rawX}§7, y: §e${pos.rawY}§7, scale: §e${pos.scale.round(2)}" GuiRenderUtils.drawStringCentered("§b" + pos.internalName, getScaledWidth() / 2, 18) GuiRenderUtils.drawStringCentered(location, getScaledWidth() / 2, 28) } @@ -212,4 +213,25 @@ class GuiPositionEditor(private val positions: List<Position>, private val borde grabbedY += position.moveY(mouseY - grabbedY, elementHeight) } } + + override fun handleMouseInput() { + super.handleMouseInput() + val mw = Mouse.getEventDWheel() + if (mw == 0) return + val mx = Mouse.getEventX() * width / mc.displayWidth + val my = height - Mouse.getEventY() * height / mc.displayHeight - 1 + val hovered = positions.firstOrNull { it.clicked } + ?: positions.lastOrNull { + val size = it.getDummySize() + GuiRenderUtils.isPointInRect( + mx, my, + it.getAbsX() - border, it.getAbsY() - border, + size.x + border * 2, size.y + border * 2 + ) + } ?: return + if (mw < 0) + hovered.scale -= .1F + else + hovered.scale += .1F + } }
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/AshfangConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/AshfangConfig.java index 894d834f2..9cffc4ed8 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/AshfangConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/AshfangConfig.java @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.config.features; +import at.hannibal2.skyhanni.config.FeatureToggle; import at.hannibal2.skyhanni.config.core.config.Position; import com.google.gson.annotations.Expose; import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; @@ -11,6 +12,7 @@ public class AshfangConfig { @Expose @ConfigOption(name = "Freeze", desc = "Show the cooldown for how long Ashfang blocks your abilities.") @ConfigEditorBoolean + @FeatureToggle public boolean brrrrItsSoColdCooldownCooldown = false; @Expose @@ -19,6 +21,7 @@ public class AshfangConfig { @Expose @ConfigOption(name = "Reset Time", desc = "Show the cooldown until Ashfang pulls his underlings back.") @ConfigEditorBoolean + @FeatureToggle public boolean nextResetCooldown = false; @Expose @@ -27,6 +30,7 @@ public class AshfangConfig { @Expose @ConfigOption(name = "Gravity Orbs", desc = "Shows the Gravity Orbs more clearly.") @ConfigEditorBoolean + @FeatureToggle public boolean gravityOrbs = false; @Expose @@ -37,6 +41,7 @@ public class AshfangConfig { @Expose @ConfigOption(name = "Blazing Souls", desc = "Shows the Blazing Souls more clearly.") @ConfigEditorBoolean + @FeatureToggle public boolean blazingSouls = false; @Expose @@ -47,20 +52,24 @@ public class AshfangConfig { @Expose @ConfigOption(name = "Highlight Blazes", desc = "Highlight the different blazes in their respective colors.") @ConfigEditorBoolean + @FeatureToggle public boolean highlightBlazes = false; @Expose @ConfigOption(name = "Hide Particles", desc = "Hide particles around the Ashfang boss.") @ConfigEditorBoolean + @FeatureToggle public boolean hideParticles = false; @Expose @ConfigOption(name = "Hide Names", desc = "Hide the names of full health blazes around Ashfang (only useful when highlight blazes is enabled)") @ConfigEditorBoolean + @FeatureToggle public boolean hideNames = false; @Expose @ConfigOption(name = "Hide Damage", desc = "Hide damage splashes around Ashfang.") @ConfigEditorBoolean + @FeatureToggle public boolean hideDamageSplash = false; } diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/BazaarConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/BazaarConfig.java index 8f12ba667..8f60e5b28 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/BazaarConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/BazaarConfig.java @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.config.features; +import at.hannibal2.skyhanni.config.FeatureToggle; import at.hannibal2.skyhanni.config.core.config.Position; import com.google.gson.annotations.Expose; import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean; @@ -10,16 +11,19 @@ public class BazaarConfig { @Expose @ConfigOption(name = "Purchase Helper", desc = "Highlights the item you are trying to buy in the Bazaar.") @ConfigEditorBoolean + @FeatureToggle public boolean purchaseHelper = true; @Expose @ConfigOption(name = "Order Helper", desc = "Show visual hints inside the Bazaar Manage Order view when items are ready to pickup or outbid.") @ConfigEditorBoolean + @FeatureToggle public boolean orderHelper = false; @Expose @ConfigOption(name = "Best Sell Method", desc = "Show the price difference between sell instantly and sell offer.") @ConfigEditorBoolean + @FeatureToggle public boolean bestSellMethod = false; @Expose @@ -28,5 +32,12 @@ public class BazaarConfig { @Expose @ConfigOption(name = "Cancelled Buy Order Clipboard", desc = "Saves missing items from cancelled buy orders to clipboard for faster re-entry.") @ConfigEditorBoolean + @FeatureToggle public boolean cancelledBuyOrderClipboard = false; + + @Expose + @ConfigOption(name = "Price Website", desc = "Adds a button to the bazaar product inventory that will open the item page in §cskyblock.bz§7.") + @ConfigEditorBoolean + @FeatureToggle + public boolean openPriceWebsite = false; } diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/BingoConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/BingoConfig.java index e083fbcbe..733b3a5a3 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/BingoConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/BingoConfig.java @@ -1,5 +1,6 @@ package at.hannibal2.skyhanni.config.features; +import at.hannibal2.skyhanni.config.FeatureToggle; import at.hannibal2.skyhanni.config.core.config.Position; import com.google.gson.annotations.Expose; import io.github.moulberry.moulconfig.annotations.Accordion; @@ -16,16 +17,17 @@ public class BingoConfig { public static class BingoCard { @Expose - @ConfigOption(name = "Enable", desc = "Displays the bingo card.") + @ConfigOption(name = "Enable", desc = "Displays the Bingo Card.") @ConfigEditorBoolean + @FeatureToggle public boolean enabled = true; @Expose - @ConfigOption(name = "Quick Toggle", desc = "Quickly toggle the bingo card or the step helper by sneaking with SkyBlock menu in hand.") + @ConfigOption(name = "Quick Toggle", desc = "Quickly toggle the Bingo Card or the step helper by sneaking with SkyBlock Menu in hand.") @ConfigEditorBoolean public boolean quickToggle = true; @Expose - @ConfigOption(name = "Bingo Steps", desc = "Show help with the next step in bingo instead of the bingo card. " + + @ConfigOption(name = "Bingo Steps", desc = "Show help with the next step in Bingo instead of the Bingo Card. " + "§cThis feature is in early development. Expect bugs and missing goals.") @ConfigEditorBoolean public boolean stepHelper = false; @@ -38,10 +40,12 @@ public class BingoConfig { @Expose @ConfigOption( name = "Show Guide", - desc = "Show tips and difficu |
