From 043a059fbca68500ba9c178100c68ade5dc3b2b8 Mon Sep 17 00:00:00 2001 From: MisterCheezeCake <75341435+MisterCheezeCake@users.noreply.github.com> Date: Sat, 28 Sep 2024 16:46:47 -0400 Subject: [PATCH] Config Updates + Actionbar Fixes --- .../wtf/cheeze/sbt/command/SBTCommand.java | 32 +- .../cheeze/sbt/config/categories/Chat.java | 14 +- .../cheeze/sbt/config/categories/General.java | 49 +-- .../cheeze/sbt/config/categories/Huds.java | 4 +- .../sbt/config/persistent/PersistentData.java | 1 + .../sbt/features/BrewingStandOverlay.java | 9 +- .../cheeze/sbt/features/MenuHighlights.java | 26 +- .../sbt/features/chat/ChatProtections.java | 15 +- .../sbt/features/chat/PartyFeatures.java | 26 +- .../sbt/features/huds/CoordinatesHUD.java | 32 +- .../sbt/features/huds/DamageReductionHUD.java | 24 +- .../cheeze/sbt/features/huds/DefenseHUD.java | 34 +- .../sbt/features/huds/DrillFuelBar.java | 16 +- .../sbt/features/huds/DrillFuelHUD.java | 32 +- .../wtf/cheeze/sbt/features/huds/EhpHUD.java | 33 +- .../wtf/cheeze/sbt/features/huds/FpsHUD.java | 33 +- .../cheeze/sbt/features/huds/HealthBar.java | 21 +- .../cheeze/sbt/features/huds/HealthHUD.java | 37 ++- .../wtf/cheeze/sbt/features/huds/ManaBar.java | 19 +- .../wtf/cheeze/sbt/features/huds/ManaHUD.java | 33 +- .../sbt/features/huds/OverflowManaHUD.java | 37 ++- .../cheeze/sbt/features/huds/RealTimeHUD.java | 40 +-- .../sbt/features/huds/SkillHUDManager.java | 54 +-- .../cheeze/sbt/features/huds/SpeedHUD.java | 24 +- .../cheeze/sbt/features/huds/TickerHUD.java | 12 +- .../java/wtf/cheeze/sbt/utils/Version.java | 5 +- .../utils/actionbar/ActionBarTransformer.java | 57 ++-- .../java/wtf/cheeze/sbt/utils/hud/HUD.java | 8 + .../cheeze/sbt/utils/render/RenderUtils.java | 4 - .../assets/skyblocktweaks/lang/en_us.json | 312 ++++++++++++++++++ 30 files changed, 716 insertions(+), 327 deletions(-) create mode 100644 src/main/resources/assets/skyblocktweaks/lang/en_us.json diff --git a/src/main/java/wtf/cheeze/sbt/command/SBTCommand.java b/src/main/java/wtf/cheeze/sbt/command/SBTCommand.java index f68cd4e..b67364f 100644 --- a/src/main/java/wtf/cheeze/sbt/command/SBTCommand.java +++ b/src/main/java/wtf/cheeze/sbt/command/SBTCommand.java @@ -23,6 +23,7 @@ import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; import net.minecraft.text.Text; import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.SBTConfig; @@ -76,6 +77,35 @@ public static void registerEvents() { ) ) + .then(literal("dumpComponents") + .then(literal("hand") + .executes(context -> { + var components = SkyblockTweaks.mc.player.getMainHandStack().getComponents(); + components.forEach((component) -> { + context.getSource().sendFeedback(Text.of(PREFIX + " §3" + component.toString())); + }); + return 1; + })) + .then(literal("slot") + .then(argument("number" , IntegerArgumentType.integer()) + .executes(context -> { + new Thread(() -> { + try { + Thread.sleep(1500); + var screen = (GenericContainerScreen) SkyblockTweaks.mc.currentScreen; + var components = screen.getScreenHandler().getSlot(IntegerArgumentType.getInteger(context, "number")).getStack().getComponents(); + components.forEach((component) -> { + context.getSource().sendFeedback(Text.of(PREFIX + " §3" + component.toString())); + }); + } catch (Exception e) { + SkyblockTweaks.LOGGER.error("Error while sleeping", e); + } + + }).start(); + return 1; + }) + ) + ) .executes(context -> { var source = context.getSource(); source.sendFeedback(Text.literal(PREFIX + " §3Debug Information")); @@ -325,7 +355,7 @@ public static void registerEvents() { context.getSource().sendFeedback(Text.of(PREFIX + " §cInvalid arguments")); return 0; }) - + ) .executes(context -> { MinecraftClient mc = context.getSource().getClient(); Screen screen = new SkyblockTweaksScreenMain(null); diff --git a/src/main/java/wtf/cheeze/sbt/config/categories/Chat.java b/src/main/java/wtf/cheeze/sbt/config/categories/Chat.java index a661e5c..b96a28e 100644 --- a/src/main/java/wtf/cheeze/sbt/config/categories/Chat.java +++ b/src/main/java/wtf/cheeze/sbt/config/categories/Chat.java @@ -1,6 +1,7 @@ package wtf.cheeze.sbt.config.categories; import dev.isxander.yacl3.api.ConfigCategory; +import dev.isxander.yacl3.api.OptionDescription; import net.minecraft.text.Text; import wtf.cheeze.sbt.config.ConfigImpl; import wtf.cheeze.sbt.features.chat.ChatProtections; @@ -10,11 +11,20 @@ public class Chat { public static ConfigCategory getCategory(ConfigImpl defaults, ConfigImpl config) { return ConfigCategory.createBuilder() - .name(Text.literal("Chat")) - .tooltip(Text.literal("Settings for chat related features")) + .name(Text.translatable("sbt.config.chat")) + .tooltip(Text.translatable("sbt.config.chat.desc")) .group(PartyFeatures.Config.getGroup(defaults, config)) .group(PartyFeatures.Config.getBlackList(defaults, config)) .group(ChatProtections.Config.getGroup(defaults, config)) .build(); } + + public static final String BASE_KEY = "sbt.config.chat."; + + public static Text key(String key) { + return Text.translatable(BASE_KEY + key); + } + public static OptionDescription keyD(String key) { + return OptionDescription.of(Text.translatable(BASE_KEY + key + ".desc")); + } } diff --git a/src/main/java/wtf/cheeze/sbt/config/categories/General.java b/src/main/java/wtf/cheeze/sbt/config/categories/General.java index 3a65af3..28c4844 100644 --- a/src/main/java/wtf/cheeze/sbt/config/categories/General.java +++ b/src/main/java/wtf/cheeze/sbt/config/categories/General.java @@ -16,8 +16,8 @@ public class General { public static ConfigCategory getCategory(ConfigImpl defaults, ConfigImpl config) { return ConfigCategory.createBuilder() - .name(Text.literal("General")) - .tooltip(Text.literal("General settings for SkyblockTweaks")) + .name(Text.translatable("sbt.config.general")) + .tooltip(Text.translatable("sbt.config.general.desc")) .option(Version.getStreamOption(defaults, config)) .group(InventoryTweaks.getGroup(defaults, config)) .group(MenuHighlights.Config.getGroup(defaults, config)) @@ -27,6 +27,15 @@ public static ConfigCategory getCategory(ConfigImpl defaults, ConfigImpl config) .build(); } + public static final String BASE_KEY = "sbt.config.general."; + + public static Text key(String key) { + return Text.translatable(BASE_KEY + key); + } + public static OptionDescription keyD(String key) { + return OptionDescription.of(Text.translatable(BASE_KEY + key + ".desc")); + } + // These are subclassed because their features live in mixins and so can't control their own config public static class InventoryTweaks { @SerialEntry @@ -37,8 +46,8 @@ public static class InventoryTweaks { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var noRenderPotionHud = Option.createBuilder() - .name(Text.literal("Disable Potion HUD")) - .description(OptionDescription.of(Text.literal("Disables rendering of the potion HUD in your inventory"))) + .name(key("inventory.noRenderPotionHud")) + .description(keyD("inventory.noRenderPotionHud")) .controller(SBTConfig::generateBooleanController) .binding( defaults.inventory.noRenderPotionHud, @@ -47,8 +56,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var redirectRecipeBook = Option.createBuilder() - .name(Text.literal("Redirect Recipe Book Clicks")) - .description(OptionDescription.of(Text.literal("Redirects the recipe book button to the SkyBlock recipe book"))) + .name(key("inventory.redirectRecipeBook")) + .description(keyD("inventory.redirectRecipeBook")) .controller(SBTConfig::generateBooleanController) .binding( defaults.inventory.redirectRecipeBook, @@ -58,8 +67,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Inventory Tweaks")) - .description(OptionDescription.of(Text.literal("Various tweaks to the inventory screen"))) + .name(key("inventory")) + .description(keyD("inventory")) .option(noRenderPotionHud) .option(redirectRecipeBook) .build(); @@ -84,8 +93,8 @@ public static class HudTweaks { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var noShadowActionBar = Option.createBuilder() - .name(Text.literal("Disable Action Bar Shadow")) - .description(OptionDescription.of(Text.literal("Removes the shadow from the action bar"))) + .name(key("hudTweaks.noShadowActionBar")) + .description(keyD("hudTweaks.noShadowActionBar")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hudTweaks.noShadowActionBar, @@ -95,8 +104,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var noRenderBossBar = Option.createBuilder() - .name(Text.literal("Disable Boss Bar")) - .description(OptionDescription.of(Text.literal("Disables rendering of boss bars"))) + .name(key("hudTweaks.noRenderBossBar")) + .description(keyD("hudTweaks.noRenderBossBar")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hudTweaks.noRenderBossBar, @@ -108,8 +117,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var noRenderHearts = Option.createBuilder() - .name(Text.literal("Disable Hearts")) - .description(OptionDescription.of(Text.literal("Disables rendering of health hearts "))) + .name(key("hudTweaks.noRenderHearts")) + .description(keyD("hudTweaks.noRenderHearts")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hudTweaks.noRenderHearts, @@ -118,8 +127,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var noRenderArmor = Option.createBuilder() - .name(Text.literal("Disable Armor Bar")) - .description(OptionDescription.of(Text.literal("Disables rendering of the armor bar"))) + .name(key("hudTweaks.noRenderArmor")) + .description(keyD("hudTweaks.noRenderArmor")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hudTweaks.noRenderArmor, @@ -129,8 +138,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var noRenderHunger = Option.createBuilder() - .name(Text.literal("Disable Hunger Bar")) - .description(OptionDescription.of(Text.literal("Disables rendering of the hunger bar"))) + .name(key("hudTweaks.noRenderHunger")) + .description(keyD("hudTweaks.noRenderHunger")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hudTweaks.noRenderHunger, @@ -140,8 +149,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("HUD Tweaks")) - .description(OptionDescription.of(Text.literal("Various tweaks to Minecraft's HUD"))) + .name(key("hudTweaks")) + .description(keyD("hudTweaks")) .option(noShadowActionBar) .option(noRenderBossBar) .option(noRenderHearts) diff --git a/src/main/java/wtf/cheeze/sbt/config/categories/Huds.java b/src/main/java/wtf/cheeze/sbt/config/categories/Huds.java index e61afaa..c3c8a4f 100644 --- a/src/main/java/wtf/cheeze/sbt/config/categories/Huds.java +++ b/src/main/java/wtf/cheeze/sbt/config/categories/Huds.java @@ -80,8 +80,8 @@ public class Huds { public static ConfigCategory getCategory(ConfigImpl defaults, ConfigImpl config) { return ConfigCategory.createBuilder() - .name(Text.literal("HUDs")) - .tooltip(Text.literal("Settings for various HUDs")) + .name(Text.translatable("sbt.config.huds")) + .tooltip(Text.translatable("sbt.config.huds.desc")) .group(SkillHUDManager.SkillHUD.Config.getGroup(defaults, config)) .group(SkillHUDManager.SkillBar.Config.getGroup(defaults, config)) .group(HealthHUD.Config.getGroup(defaults, config)) diff --git a/src/main/java/wtf/cheeze/sbt/config/persistent/PersistentData.java b/src/main/java/wtf/cheeze/sbt/config/persistent/PersistentData.java index f9e5a82..6e68e3d 100644 --- a/src/main/java/wtf/cheeze/sbt/config/persistent/PersistentData.java +++ b/src/main/java/wtf/cheeze/sbt/config/persistent/PersistentData.java @@ -15,6 +15,7 @@ * We use these instead of the cute names so that profiles, even across accounts, will never inherit the persistent data of another */ public class PersistentData { + public HashMap profiles = new HashMap(); private static final Path configPath = FabricLoader.getInstance().getConfigDir().resolve("skyblocktweaks-persistent.json"); diff --git a/src/main/java/wtf/cheeze/sbt/features/BrewingStandOverlay.java b/src/main/java/wtf/cheeze/sbt/features/BrewingStandOverlay.java index 7f4f86a..dcf455f 100644 --- a/src/main/java/wtf/cheeze/sbt/features/BrewingStandOverlay.java +++ b/src/main/java/wtf/cheeze/sbt/features/BrewingStandOverlay.java @@ -11,6 +11,7 @@ import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.ConfigImpl; import wtf.cheeze.sbt.config.SBTConfig; +import wtf.cheeze.sbt.config.categories.General; import wtf.cheeze.sbt.utils.render.RenderUtils; public class BrewingStandOverlay { @@ -60,8 +61,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Brewing Stand Overlay")) - .description(OptionDescription.of(Text.literal("Enables the overlay for the brewing stand"))) + .name(General.key("brewingStandOverlay.enabled")) + .description(General.keyD("brewingStandOverlay.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.brewingStandOverlay.enabled, @@ -71,8 +72,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Brewing Stand Overlay")) - .description(OptionDescription.of(Text.literal("Options for the brewing stand overlay"))) + .name(General.key("brewingStandOverlay")) + .description(General.keyD("brewingStandOverlay")) .option(enabled) .build(); diff --git a/src/main/java/wtf/cheeze/sbt/features/MenuHighlights.java b/src/main/java/wtf/cheeze/sbt/features/MenuHighlights.java index b5838f0..fdec784 100644 --- a/src/main/java/wtf/cheeze/sbt/features/MenuHighlights.java +++ b/src/main/java/wtf/cheeze/sbt/features/MenuHighlights.java @@ -32,6 +32,8 @@ import wtf.cheeze.sbt.config.SBTConfig; import java.util.regex.Pattern; +import static wtf.cheeze.sbt.config.categories.General.key; +import static wtf.cheeze.sbt.config.categories.General.keyD; public class MenuHighlights { @@ -141,8 +143,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Hub Selector Highlights")) - .description(OptionDescription.of(Text.literal("Whether or not to highlight hubs in the hub selector based on their capacity"))) + .name(key("menuHighlights.enabledRegular")) + .description(keyD("menuHighlights.enabledRegular")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hubSelectorHighlight.enabledRegular, @@ -151,8 +153,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var enabledDungeon = Option.createBuilder() - .name(Text.literal("Dungeon Hub Selector Highlights")) - .description(OptionDescription.of(Text.literal("Whether or not to highlight hubs in the dungeon hub selector based on their capacity"))) + .name(key("menuHighlights.enabledDungeon")) + .description(keyD("menuHighlights.enabledDungeon")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hubSelectorHighlight.enabledDungeon, @@ -161,8 +163,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var hotmHighlight = Option.createBuilder() - .name(Text.literal("HOTM Highlights")) - .description(OptionDescription.of(Text.literal("Whether or not to highlight HOTM perks based on their status (enabled/disabled)"))) + .name(key("menuHighlights.hotmHighlight")) + .description(keyD("menuHighlights.hotmHighlight")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hubSelectorHighlight.hotmHighlight, @@ -172,8 +174,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var widgetHighlight = Option.createBuilder() - .name(Text.literal("Widget Highlights")) - .description(OptionDescription.of(Text.literal("Whether or not to highlight items in the /widgets menu based on their status (enabled/disabled)"))) + .name(key("menuHighlights.widgetHighlight")) + .description(keyD("menuHighlights.widgetHighlight")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hubSelectorHighlight.widgetHighlight, @@ -182,8 +184,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var sblevelHighlight = Option.createBuilder() - .name(Text.literal("Task Highlights")) - .description(OptionDescription.of(Text.literal("Whether or not to highlight items in the /sblevel menu based on their completion status"))) + .name(key("menuHighlights.sblevelHighlight")) + .description(keyD("menuHighlights.sblevelHighlight")) .controller(SBTConfig::generateBooleanController) .binding( defaults.hubSelectorHighlight.sblevelHighlight, @@ -193,8 +195,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Menu Highlights")) - .description(OptionDescription.of(Text.literal("Settings for Menu Highlights and coloring"))) + .name(key("menuHighlights")) + .description(keyD("menuHighlights")) .option(enabled) .option(enabledDungeon) .option(hotmHighlight) diff --git a/src/main/java/wtf/cheeze/sbt/features/chat/ChatProtections.java b/src/main/java/wtf/cheeze/sbt/features/chat/ChatProtections.java index 97d7706..a71f028 100644 --- a/src/main/java/wtf/cheeze/sbt/features/chat/ChatProtections.java +++ b/src/main/java/wtf/cheeze/sbt/features/chat/ChatProtections.java @@ -1,7 +1,6 @@ package wtf.cheeze.sbt.features.chat; import dev.isxander.yacl3.api.Option; -import dev.isxander.yacl3.api.OptionDescription; import dev.isxander.yacl3.api.OptionGroup; import dev.isxander.yacl3.config.v2.api.SerialEntry; import net.fabricmc.fabric.api.client.message.v1.ClientSendMessageEvents; @@ -10,6 +9,8 @@ import wtf.cheeze.sbt.config.ConfigImpl; import wtf.cheeze.sbt.config.SBTConfig; import wtf.cheeze.sbt.utils.TimedValue; +import static wtf.cheeze.sbt.config.categories.Chat.key; +import static wtf.cheeze.sbt.config.categories.Chat.keyD; import java.util.regex.Pattern; @@ -85,8 +86,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var coop = Option.createBuilder() - .name(Text.literal("Coop Add Confirmation")) - .description(OptionDescription.of(Text.literal("Requires confirmation before actually sending a /coopadd request"))) + .name(key("chatProtections.coop")) + .description(keyD("chatProtections.coop")) .controller(SBTConfig::generateBooleanController) .binding( defaults.chatProtections.coop, @@ -95,8 +96,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var ip = Option.createBuilder() - .name(Text.literal("IP Protection")) - .description(OptionDescription.of(Text.literal("Warns you before sending a message containing an ip address"))) + .name(key("chatProtections.ip")) + .description(keyD("chatProtections.ip")) .controller(SBTConfig::generateBooleanController) .binding( defaults.chatProtections.ip, @@ -106,8 +107,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Chat Protections")) - .description(OptionDescription.of(Text.literal("Settings for chat related features"))) + .name(key("chatProtections")) + .description(keyD("chatProtections")) .option(coop) .option(ip) .build(); diff --git a/src/main/java/wtf/cheeze/sbt/features/chat/PartyFeatures.java b/src/main/java/wtf/cheeze/sbt/features/chat/PartyFeatures.java index 24f3414..8df609f 100644 --- a/src/main/java/wtf/cheeze/sbt/features/chat/PartyFeatures.java +++ b/src/main/java/wtf/cheeze/sbt/features/chat/PartyFeatures.java @@ -27,6 +27,7 @@ import dev.isxander.yacl3.config.v2.api.SerialEntry; import net.azureaaron.hmapi.network.HypixelNetworking; import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; +import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.ConfigImpl; @@ -36,6 +37,8 @@ import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; +import static wtf.cheeze.sbt.config.categories.Chat.key; +import static wtf.cheeze.sbt.config.categories.Chat.keyD; public class PartyFeatures { @@ -132,8 +135,8 @@ public static class Config { public static ListOption getBlackList(ConfigImpl defaults, ConfigImpl config) { return ListOption.createBuilder() - .name(Text.literal("Party Commands Blocked Users")) - .description(OptionDescription.of(Text.literal("Users that are blocked from using party commands"))) + .name(key("partyFeatures.blockedUsers")) + .description(keyD("partyFeatures.blockedUsers")) .binding( defaults.partyCommands.blockedUsers, () -> config.partyCommands.blockedUsers, @@ -147,8 +150,8 @@ public static ListOption getBlackList(ConfigImpl defaults, ConfigImpl co public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Party Commands")) - .description(OptionDescription.of(Text.literal("Whether or not to enable party commands"))) + .name(key("partyFeatures.enabled")) + .description(keyD("partyFeatures.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.partyCommands.enabled, @@ -157,8 +160,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var cooldown = Option.createBuilder() - .name(Text.literal("Command Cooldown")) - .description(OptionDescription.of(Text.literal("The cooldown in milliseconds between party commands"))) + .name(key("partyFeatures.cooldown")) + .description(keyD("partyFeatures.cooldown")) .controller(opt -> IntegerFieldControllerBuilder.create(opt).min(0).max(10000)) .binding( defaults.partyCommands.cooldown, @@ -168,8 +171,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var inviteBoop = Option.createBuilder() - .name(Text.literal("Boop Invites")) - .description(OptionDescription.of(Text.literal("Whether or not to prompt a party invite when booped by a player"))) + .name(key("partyFeatures.boopInvites")) + .description(keyD("partyFeatures.boopInvites")) .controller(SBTConfig::generateBooleanController) .binding( defaults.partyCommands.boopInvites, @@ -179,13 +182,14 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); - return OptionGroup.createBuilder() - .name(Text.literal("Party Features")) - .description(OptionDescription.of(Text.literal("Settings for Party Features"))) + return OptionGroup.createBuilder() + .name(key("partyFeatures")) + .description(keyD("partyFeatures")) .option(enabled) .option(cooldown) .option(inviteBoop) .build(); + } } diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/CoordinatesHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/CoordinatesHUD.java index b2db118..89dfaad 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/CoordinatesHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/CoordinatesHUD.java @@ -100,8 +100,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Coordinates HUD")) - .description(OptionDescription.of(Text.literal("Enables the Coordinates HUD"))) + .name(key("coordinates.enabled")) + .description(keyD("coordinates.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.coordinates.enabled, @@ -111,8 +111,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var outside = Option.createBuilder() - .name(Text.literal("Show outside of Skyblock")) - .description(OptionDescription.of(Text.literal("Whether to show the Coordinates HUD outside of Skyblock"))) + .name(key("coordinates.showOutside")) + .description(keyD("coordinates.showOutside")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.coordinates.showOutside, @@ -121,8 +121,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var decimalPlaces = Option.createBuilder() - .name(Text.literal("Decimal Places")) - .description(OptionDescription.of(Text.literal("The number of decimal places to show in the Coordinates HUD"))) + .name(key("coordinates.decimalPlaces")) + .description(keyD("coordinates.decimalPlaces")) .controller( opt -> IntegerSliderControllerBuilder.create(opt) .step(1) @@ -137,8 +137,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var color = Option.createBuilder() - .name(Text.literal("Coordinates HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Coordinates HUD"))) + .name(key("coordinates.color")) + .description(keyD("coordinates.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.coordinates.color), @@ -148,8 +148,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Coordinates HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Coordinates HUD"))) + .name(key("coordinates.outlineColor")) + .description(keyD("coordinates.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.coordinates.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -160,8 +160,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Coordinates HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Coordinates HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("coordinates.mode")) + .description(keyD("coordinates.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.coordinates.mode, @@ -174,8 +174,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Coordinates HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Coordinates HUD"))) + .name(key("coordinates.scale")) + .description(keyD("coordinates.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.coordinates.scale, @@ -185,8 +185,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Coordinates HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Coordinates HUD"))) + .name(key("coordinates")) + .description(keyD("coordinates")) .option(enabled) .option(outside) .option(decimalPlaces) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/DamageReductionHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/DamageReductionHUD.java index 4c50739..82b387a 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/DamageReductionHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/DamageReductionHUD.java @@ -98,8 +98,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Damage Reduction HUD")) - .description(OptionDescription.of(Text.literal("Enables the Damage Reduction HUD"))) + .name(key("dr.enabled")) + .description(keyD("dr.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.dr.enabled, @@ -108,8 +108,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var color = Option.createBuilder() - .name(Text.literal("Damage Reduction HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Damage Reduction HUD"))) + .name(key("dr.color")) + .description(keyD("dr.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.dr.color), @@ -119,8 +119,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Damage Reduction HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Damage Reduction HUD"))) + .name(key("dr.outlineColor")) + .description(keyD("dr.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.dr.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -131,8 +131,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Damage Reduction HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Damage Reduction HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("dr.mode")) + .description(keyD("dr.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.dr.mode, @@ -145,8 +145,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Damage Reduction HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Damage Reduction HUD"))) + .name(key("dr.scale")) + .description(keyD("dr.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.dr.scale, @@ -156,8 +156,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Damage Reduction HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Damage Reduction HUD"))) + .name(key("dr")) + .description(keyD("dr")) .option(enabled) .option(mode) .option(color) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/DefenseHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/DefenseHUD.java index 397138a..0426f4e 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/DefenseHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/DefenseHUD.java @@ -104,8 +104,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Defense HUD")) - .description(OptionDescription.of(Text.literal("Enables the Defense HUD"))) + .name(key("defense.enabled")) + .description(keyD("defense.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.defense.enabled, @@ -114,8 +114,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var color = Option.createBuilder() - .name(Text.literal("Defense HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Defense HUD"))) + .name(key("defense.color")) + .description(keyD("defense.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.defense.color), @@ -125,8 +125,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Defense HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Defense HUD"))) + .name(key("defense.outlineColor")) + .description(keyD("defense.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.defense.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -134,13 +134,11 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { () -> new Color(config.huds.defense.outlineColor), value -> config.huds.defense.outlineColor = value.getRGB() - - ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Defense HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Defense HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("defense.mode")) + .description(keyD("defense.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.defense.mode, @@ -153,8 +151,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var icon = Option.createBuilder() - .name(Text.literal("Defense HUD Icon")) - .description(OptionDescription.of(Text.literal("Enables the icon (❈) in the Defense HUD"))) + .name(key("defense.icon")) + .description(keyD("defense.icon")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.defense.icon, @@ -163,8 +161,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var separator = Option.createBuilder() - .name(Text.literal("Defense HUD Separator")) - .description(OptionDescription.of(Text.literal("The separator for the Defense HUD"))) + .name(key("defense.separator")) + .description(keyD("defense.separator")) .controller(StringControllerBuilder::create) .binding( defaults.huds.defense.separator, @@ -173,8 +171,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Defense HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Defense HUD"))) + .name(key("defense.scale")) + .description(keyD("defense.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.defense.scale, @@ -184,8 +182,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Defense HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Defense HUD"))) + .name(key("defense")) + .description(keyD("defense")) .option(enabled) .option(mode) .option(color) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/DrillFuelBar.java b/src/main/java/wtf/cheeze/sbt/features/huds/DrillFuelBar.java index e0606a4..9dd5f40 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/DrillFuelBar.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/DrillFuelBar.java @@ -84,8 +84,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Drill Fuel Bar")) - .description(OptionDescription.of(Text.literal("Enables the Drill Fuel Bar"))) + .name(key("drillFuelBar.enabled")) + .description(keyD("drillFuelBar.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.drillFuelBar.enabled, @@ -95,8 +95,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var color = Option.createBuilder() - .name(Text.literal("Drill Fuel Bar Color")) - .description(OptionDescription.of(Text.literal("The color of the Drill Fuel Bar"))) + .name(key("drillFuelBar.color")) + .description(keyD("drillFuelBar.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.drillFuelBar.color), @@ -106,8 +106,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Drill Fuel Bar Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Drill Fuel Bar"))) + .name(key("drillFuelBar.scale")) + .description(keyD("drillFuelBar.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.drillFuelBar.scale, @@ -116,8 +116,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); return OptionGroup.createBuilder() - .name(Text.literal("Drill Fuel Bar")) - .description(OptionDescription.of(Text.literal("Settings for the Drill Fuel Bar"))) + .name(key("drillFuelBar")) + .description(keyD("drillFuelBar")) .option(enabled) .option(color) .option(scale) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/DrillFuelHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/DrillFuelHUD.java index a5c9c50..700b92a 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/DrillFuelHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/DrillFuelHUD.java @@ -105,8 +105,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Drill Fuel HUD")) - .description(OptionDescription.of(Text.literal("Enables the Drill Fuel HUD"))) + .name(key("drillFuel.enabled")) + .description(keyD("drillFuel.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.drillFuel.enabled, @@ -115,8 +115,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var secondNo = Option.createBuilder() - .name(Text.literal("Abridge Max Fuel")) - .description(OptionDescription.of(Text.literal("Replaces thousands with k in the max fuel in the Drill Fuel HUD"))) + .name(key("drillFuel.abridgeSecondNumber")) + .description(keyD("drillFuel.abridgeSecondNumber")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.drillFuel.abridgeSecondNumber, @@ -125,8 +125,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var color = Option.createBuilder() - .name(Text.literal("Drill Fuel HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Drill Fuel HUD"))) + .name(key("drillFuel.color")) + .description(keyD("drillFuel.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.drillFuel.color), @@ -136,8 +136,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Drill Fuel HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Drill Fuel HUD"))) + .name(key("drillFuel.outlineColor")) + .description(keyD("drillFuel.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.drillFuel.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -147,8 +147,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Drill Fuel HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Drill Fuel HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("drillFuel.mode")) + .description(keyD("drillFuel.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.drillFuel.mode, @@ -161,8 +161,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var separator = Option.createBuilder() - .name(Text.literal("Drill Fuel HUD Separator")) - .description(OptionDescription.of(Text.literal("The separator for the Drill Fuel HUD"))) + .name(key("drillFuel.separator")) + .description(keyD("drillFuel.separator")) .controller(StringControllerBuilder::create) .binding( defaults.huds.drillFuel.separator, @@ -171,8 +171,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Drill Fuel HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Drill Fuel HUD"))) + .name(key("drillFuel.scale")) + .description(keyD("drillFuel.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.drillFuel.scale, @@ -182,8 +182,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Drill Fuel HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Drill Fuel HUD"))) + .name(key("drillFuel")) + .description(keyD("drillFuel")) .option(enabled) .option(secondNo) .option(mode) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/EhpHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/EhpHUD.java index 62c9554..bb09844 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/EhpHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/EhpHUD.java @@ -24,6 +24,7 @@ import dev.isxander.yacl3.api.controller.ColorControllerBuilder; import dev.isxander.yacl3.api.controller.StringControllerBuilder; import dev.isxander.yacl3.config.v2.api.SerialEntry; +import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.ConfigImpl; @@ -102,8 +103,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Effective Health HUD")) - .description(OptionDescription.of(Text.literal("Enables the Effective Health HUD"))) + .name(key("ehp.enabled")) + .description(keyD("ehp.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.ehp.enabled, @@ -112,8 +113,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Effective Health HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Effective Health HUD"))) + .name(key("ehp.outlineColor")) + .description(keyD("ehp.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.ehp.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -126,8 +127,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Effective Health HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Effective Health HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("ehp.mode")) + .description(keyD("ehp.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.ehp.mode, @@ -141,8 +142,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var color = Option.createBuilder() - .name(Text.literal("Effective Health HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Effective Health HUD"))) + .name(key("ehp.color")) + .description(keyD("ehp.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.ehp.color), @@ -152,8 +153,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var icon = Option.createBuilder() - .name(Text.literal("Effective Health HUD Icon")) - .description(OptionDescription.of(Text.literal("Enables the icon (❤) in the Effective Health HUD"))) + .name(key("ehp.icon")) + .description(keyD("ehp.icon")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.ehp.icon, @@ -162,8 +163,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var separator = Option.createBuilder() - .name(Text.literal("Effective Health HUD Separator")) - .description(OptionDescription.of(Text.literal("The separator for the Effective Health HUD"))) + .name(key("ehp.separator")) + .description(keyD("ehp.separator")) .controller(StringControllerBuilder::create) .binding( defaults.huds.ehp.separator, @@ -172,8 +173,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Effective Health HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Effective Health HUD"))) + .name(key("ehp.scale")) + .description(keyD("ehp.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.ehp.scale, @@ -184,8 +185,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { return OptionGroup.createBuilder() - .name(Text.literal("Effective Health HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Effective Health HUD"))) + .name(key("ehp")) + .description(keyD("ehp")) .option(enabled) .option(mode) .option(color) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/FpsHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/FpsHUD.java index 5de11d7..ea30eb8 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/FpsHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/FpsHUD.java @@ -23,6 +23,7 @@ import dev.isxander.yacl3.api.OptionGroup; import dev.isxander.yacl3.api.controller.ColorControllerBuilder; import dev.isxander.yacl3.config.v2.api.SerialEntry; +import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.ConfigImpl; @@ -99,8 +100,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable FPS HUD")) - .description(OptionDescription.of(Text.literal("Enables the FPS HUD"))) + .name(key("fps.enabled")) + .description(keyD("fps.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.fps.enabled, @@ -110,8 +111,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var outside = Option.createBuilder() - .name(Text.literal("Show outside of Skyblock")) - .description(OptionDescription.of(Text.literal("Whether to show the FPS HUD outside of Skyblock"))) + .name(key("fps.showOutside")) + .description(keyD("fps.showOutside")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.fps.showOutside, @@ -121,8 +122,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var reverse = Option.createBuilder() - .name(Text.literal("Reverse FPS HUD")) - .description(OptionDescription.of(Text.literal("Whether to show the FPS as 'FPS: 123' instead of '123 FPS'"))) + .name(key("fps.reverse")) + .description(keyD("fps.reverse")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.fps.reverse, @@ -131,8 +132,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var color = Option.createBuilder() - .name(Text.literal("FPS HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the FPS HUD"))) + .name(key("fps.color")) + .description(keyD("fps.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.fps.color), @@ -142,8 +143,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("FPS HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the FPS HUD"))) + .name(key("fps.outlineColor")) + .description(keyD("fps.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.fps.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -154,8 +155,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("FPS HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the FPS HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("fps.mode")) + .description(keyD("fps.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.fps.mode, @@ -168,8 +169,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("FPS HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the FPS HUD"))) + .name(key("fps.scale")) + .description(keyD("fps.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.fps.scale, @@ -179,8 +180,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("FPS HUD")) - .description(OptionDescription.of(Text.literal("Settings for the FPS HUD"))) + .name(key("fps")) + .description(keyD("fps")) .option(enabled) .option(outside) .option(reverse) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/HealthBar.java b/src/main/java/wtf/cheeze/sbt/features/huds/HealthBar.java index 8af2f25..0ddc663 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/HealthBar.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/HealthBar.java @@ -23,6 +23,7 @@ import dev.isxander.yacl3.api.OptionGroup; import dev.isxander.yacl3.api.controller.ColorControllerBuilder; import dev.isxander.yacl3.config.v2.api.SerialEntry; +import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.ConfigImpl; @@ -86,8 +87,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Health Bar")) - .description(OptionDescription.of(Text.literal("Enables the Health Bar"))) + .name(key("healthBar.enabled")) + .description(keyD("healthBar.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.healthBar.enabled, @@ -96,8 +97,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var color = Option.createBuilder() - .name(Text.literal("Health Bar Color")) - .description(OptionDescription.of(Text.literal("The color of the Health Bar"))) + .name(key("healthBar.color")) + .description(keyD("healthBar.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.healthBar.color), @@ -107,8 +108,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var absorbColor = Option.createBuilder() - .name(Text.literal("Health Bar Absorption Color")) - .description(OptionDescription.of(Text.literal("The color of the Health Bar when you have absorption"))) + .name(key("healthBar.colorAbsorption")) + .description(keyD("healthBar.colorAbsorption")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.healthBar.colorAbsorption), @@ -118,8 +119,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Health Bar Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Health Bar"))) + .name(key("healthBar.scale")) + .description(keyD("healthBar.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.healthBar.scale, @@ -128,8 +129,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); return OptionGroup.createBuilder() - .name(Text.literal("Health Bar")) - .description(OptionDescription.of(Text.literal("Settings for the Health Bar"))) + .name(key("healthBar")) + .description(keyD("healthBar")) .option(enabled) .option(color) .option(absorbColor) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/HealthHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/HealthHUD.java index 2926240..857d5f6 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/HealthHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/HealthHUD.java @@ -24,6 +24,7 @@ import dev.isxander.yacl3.api.controller.ColorControllerBuilder; import dev.isxander.yacl3.api.controller.StringControllerBuilder; import dev.isxander.yacl3.config.v2.api.SerialEntry; +import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.ConfigImpl; @@ -104,8 +105,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Health HUD")) - .description(OptionDescription.of(Text.literal("Enables the Health HUD"))) + .name(key("health.enabled")) + .description(keyD("health.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.health.enabled, @@ -114,8 +115,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var color = Option.createBuilder() - .name(Text.literal("Health HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Health HUD"))) + .name(key("health.color")) + .description(keyD("health.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.health.color), @@ -125,8 +126,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var colorAbsorption = Option.createBuilder() - .name(Text.literal("Health HUD Absorption Color")) - .description(OptionDescription.of(Text.literal("The color of the Health HUD when you have absorption"))) + .name(key("health.colorAbsorption")) + .description(keyD("health.colorAbsorption")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.health.colorAbsorption), @@ -136,8 +137,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Health HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Health HUD"))) + .name(key("health.outlineColor")) + .description(keyD("health.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.health.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -148,8 +149,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Health HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Health HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("health.mode")) + .description(keyD("health.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.health.mode, @@ -162,8 +163,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var icon = Option.createBuilder() - .name(Text.literal("Health HUD Icon")) - .description(OptionDescription.of(Text.literal("Enables the icon (❤) in the Health HUD"))) + .name(key("health.icon")) + .description(keyD("health.icon")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.health.icon, @@ -172,8 +173,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var separator = Option.createBuilder() - .name(Text.literal("Health HUD Separator")) - .description(OptionDescription.of(Text.literal("The separator for the Health HUD"))) + .name(key("health.separator")) + .description(keyD("health.separator")) .controller(StringControllerBuilder::create) .binding( defaults.huds.health.separator, @@ -182,8 +183,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Health HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Health HUD"))) + .name(key("health.scale")) + .description(keyD("health.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.health.scale, @@ -192,8 +193,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); return OptionGroup.createBuilder() - .name(Text.literal("Health HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Health HUD"))) + .name(key("health")) + .description(keyD("health")) .option(enabled) .option(mode) .option(color) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/ManaBar.java b/src/main/java/wtf/cheeze/sbt/features/huds/ManaBar.java index e77b4cc..05b6da4 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/ManaBar.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/ManaBar.java @@ -23,6 +23,7 @@ import dev.isxander.yacl3.api.OptionGroup; import dev.isxander.yacl3.api.controller.ColorControllerBuilder; import dev.isxander.yacl3.config.v2.api.SerialEntry; +import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.ConfigImpl; @@ -47,7 +48,6 @@ public ManaBar() { y -> SBTConfig.huds().manaBar.y = (float) y, scale -> SBTConfig.huds().manaBar.scale = (float) scale, anchor -> SBTConfig.huds().manaBar.anchor = anchor - ); } @@ -82,10 +82,11 @@ public static class Config { @SerialEntry public AnchorPoint anchor = AnchorPoint.LEFT; + public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Mana Bar")) - .description(OptionDescription.of(Text.literal("Enables the Mana Bar"))) + .name(key("manaBar.enabled")) + .description(keyD("manaBar.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.manaBar.enabled, @@ -95,8 +96,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var color = Option.createBuilder() - .name(Text.literal("Mana Bar Color")) - .description(OptionDescription.of(Text.literal("The color of the Mana Bar"))) + .name(key("manaBar.color")) + .description(keyD("manaBar.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.manaBar.color), @@ -106,8 +107,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Mana Bar Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Mana Bar"))) + .name(key("manaBar.scale")) + .description(keyD("manaBar.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.manaBar.scale, @@ -116,8 +117,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); return OptionGroup.createBuilder() - .name(Text.literal("Mana Bar")) - .description(OptionDescription.of(Text.literal("Settings for the Mana Bar"))) + .name(key("manaBar")) + .description(keyD("manaBar")) .option(enabled) .option(color) .option(scale) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/ManaHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/ManaHUD.java index ec010e9..19ccb36 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/ManaHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/ManaHUD.java @@ -24,6 +24,7 @@ import dev.isxander.yacl3.api.controller.ColorControllerBuilder; import dev.isxander.yacl3.api.controller.StringControllerBuilder; import dev.isxander.yacl3.config.v2.api.SerialEntry; +import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.ConfigImpl; @@ -110,8 +111,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Mana HUD")) - .description(OptionDescription.of(Text.literal("Enables the Mana HUD"))) + .name(key("mana.enabled")) + .description(keyD("mana.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.mana.enabled, @@ -120,8 +121,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var color = Option.createBuilder() - .name(Text.literal("Mana HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Mana HUD"))) + .name(key("mana.color")) + .description(keyD("mana.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.mana.color), @@ -131,8 +132,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Mana HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Mana HUD"))) + .name(key("mana.outlineColor")) + .description(keyD("mana.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.mana.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -143,8 +144,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Mana HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Mana HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("mana.mode")) + .description(keyD("mana.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.mana.mode, @@ -157,8 +158,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var icon = Option.createBuilder() - .name(Text.literal("Mana HUD Icon")) - .description(OptionDescription.of(Text.literal("Enables the icon (✎) in the Mana HUD"))) + .name(key("mana.icon")) + .description(keyD("mana.icon")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.mana.icon, @@ -167,8 +168,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var separator = Option.createBuilder() - .name(Text.literal("Mana HUD Separator")) - .description(OptionDescription.of(Text.literal("The separator for the Mana HUD"))) + .name(key("mana.separator")) + .description(keyD("mana.separator")) .controller(StringControllerBuilder::create) .binding( defaults.huds.mana.separator, @@ -177,8 +178,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Mana HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Mana HUD"))) + .name(key("mana.scale")) + .description(keyD("mana.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.mana.scale, @@ -187,8 +188,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); return OptionGroup.createBuilder() - .name(Text.literal("Mana HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Mana HUD"))) + .name(key("mana")) + .description(keyD("mana")) .option(enabled) .option(mode) .option(color) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/OverflowManaHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/OverflowManaHUD.java index b24d687..97db91d 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/OverflowManaHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/OverflowManaHUD.java @@ -24,6 +24,7 @@ import dev.isxander.yacl3.api.controller.ColorControllerBuilder; import dev.isxander.yacl3.api.controller.StringControllerBuilder; import dev.isxander.yacl3.config.v2.api.SerialEntry; +import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; import wtf.cheeze.sbt.SkyblockTweaks; import wtf.cheeze.sbt.config.ConfigImpl; @@ -106,8 +107,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Overflow Mana HUD")) - .description(OptionDescription.of(Text.literal("Enables the Overflow Mana HUD"))) + .name(key("overflowMana.enabled")) + .description(keyD("overflowMana.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.overflowMana.enabled, @@ -116,8 +117,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var hideWhenZero = Option.createBuilder() - .name(Text.literal("Hide Overflow Mana HUD when Zero")) - .description(OptionDescription.of(Text.literal("Hides the Overflow Mana HUD when the value is zero"))) + .name(key("overflowMana.hideWhenZero")) + .description(keyD("overflowMana.hideWhenZero")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.overflowMana.hideWhenZero, @@ -126,8 +127,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var color = Option.createBuilder() - .name(Text.literal("Overflow Mana HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Overflow Mana HUD"))) + .name(key("overflowMana.color")) + .description(keyD("overflowMana.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.overflowMana.color), @@ -137,8 +138,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Overflow Mana HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Overflow Mana HUD"))) + .name(key("overflowMana.outlineColor")) + .description(keyD("overflowMana.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.overflowMana.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -149,8 +150,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Overflow Mana HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Overflow Mana HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("overflowMana.mode")) + .description(keyD("overflowMana.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.overflowMana.mode, @@ -163,8 +164,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var icon = Option.createBuilder() - .name(Text.literal("Overflow Mana HUD Icon")) - .description(OptionDescription.of(Text.literal("Enables the icon (ʬ) in the Overflow Mana HUD"))) + .name(key("overflowMana.icon")) + .description(keyD("overflowMana.icon")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.overflowMana.icon, @@ -173,8 +174,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var separator = Option.createBuilder() - .name(Text.literal("Overflow Mana HUD Separator")) - .description(OptionDescription.of(Text.literal("The separator for the Overflow Mana HUD"))) + .name(key("overflowMana.separator")) + .description(keyD("overflowMana.separator")) .controller(StringControllerBuilder::create) .binding( defaults.huds.overflowMana.separator, @@ -183,8 +184,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Overflow Mana HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Overflow Mana HUD"))) + .name(key("overflowMana.scale")) + .description(keyD("overflowMana.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.overflowMana.scale, @@ -193,8 +194,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); return OptionGroup.createBuilder() - .name(Text.literal("Overflow Mana HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Overflow Mana HUD"))) + .name(key("overflowMana")) + .description(keyD("overflowMana")) .option(enabled) .option(hideWhenZero) .option(mode) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/RealTimeHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/RealTimeHUD.java index b7f2221..0ece3a5 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/RealTimeHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/RealTimeHUD.java @@ -129,8 +129,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Real Time HUD")) - .description(OptionDescription.of(Text.literal("Enables the Real Time HUD"))) + .name(key("time.enabled")) + .description(keyD("time.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.time.enabled, @@ -140,8 +140,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var outside = Option.createBuilder() - .name(Text.literal("Show outside of Skyblock")) - .description(OptionDescription.of(Text.literal("Whether to show the Real Time HUD outside of Skyblock"))) + .name(key("time.showOutside")) + .description(keyD("time.showOutside")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.time.showOutside, @@ -151,8 +151,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var seconds = Option.createBuilder() - .name(Text.literal("Show Seconds")) - .description(OptionDescription.of(Text.literal("Whether to show the seconds in the Real Time HUD"))) + .name(key("time.seconds")) + .description(keyD("time.seconds")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.time.seconds, @@ -162,8 +162,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var amPM = Option.createBuilder() - .name(Text.literal("Show AM/PM")) - .description(OptionDescription.of(Text.literal("Whether to show AM/PM in the Real Time HUD"))) + .name(key("time.amPM")) + .description(keyD("time.amPM")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.time.amPM, @@ -173,8 +173,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .available(config.huds.time.twelveHour) .build(); var twelveHour = Option.createBuilder() - .name(Text.literal("12 Hour Time")) - .description(OptionDescription.of(Text.literal("Whether to use the 12 hour format in the Real Time HUD"))) + .name(key("time.twelveHour")) + .description(keyD("time.twelveHour")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.time.twelveHour, @@ -187,8 +187,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var color = Option.createBuilder() - .name(Text.literal("Real Time HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Real Time HUD"))) + .name(key("time.color")) + .description(keyD("time.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.time.color), @@ -198,8 +198,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Real Time HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Real Time HUD"))) + .name(key("time.outlineColor")) + .description(keyD("time.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.time.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -210,8 +210,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Real Time HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Real Time HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("time.mode")) + .description(keyD("time.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.time.mode, @@ -224,8 +224,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Real Time HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Real Time HUD"))) + .name(key("time.scale")) + .description(keyD("time.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.time.scale, @@ -235,8 +235,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Real Time HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Real Time HUD"))) + .name(key("time")) + .description(keyD("time")) .option(enabled) .option(outside) .option(seconds) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/SkillHUDManager.java b/src/main/java/wtf/cheeze/sbt/features/huds/SkillHUDManager.java index 42dbecc..9d8b92f 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/SkillHUDManager.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/SkillHUDManager.java @@ -31,6 +31,8 @@ public class SkillHUDManager { public static final SkillHUDManager INSTANCE = new SkillHUDManager(); + private SkillHUDManager() {} + public final SkillHUD SKILL_HUD = new SkillHUD(); public final SkillBar SKILL_BAR = new SkillBar(); @@ -231,8 +233,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Skill Progress HUD")) - .description(OptionDescription.of(Text.literal("Enables the Skill Progress HUD"))) + .name(key("skills.enabled")) + .description(keyD("skills.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.skills.enabled, @@ -242,8 +244,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var skillMode = Option.createBuilder() - .name(Text.literal("Skill Progress HUD Mode")) - .description(OptionDescription.of(Text.literal("The mode of the Skill Progress HUD.\nDefault will show the progress based on how Hypixel does by default\nNumber always will show the progress as a number\nPercent will always show the progress as a percentage"))) + .name(key("skills.skillMode")) + .description(keyD("skills.skillMode")) .controller(opt -> EnumControllerBuilder.create(opt).enumClass(Mode.class)) .binding( defaults.huds.skills.skillMode, @@ -253,8 +255,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var actionsLeft = Option.createBuilder() - .name(Text.literal("Skill Progress HUD Actions Left")) - .description(OptionDescription.of(Text.literal("Shows the amount of actions left to level up in the Skill Progress HUD"))) + .name(key("skills.actionsLeft")) + .description(keyD("skills.actionsLeft")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.skills.actionsLeft, @@ -263,8 +265,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var abridgeDenominator = Option.createBuilder() - .name(Text.literal("Skill Progress HUD Abridge Denominator")) - .description(OptionDescription.of(Text.literal("Abridges the denominator in the Skill Progress HUD"))) + .name(key("skills.abridgeDenominator")) + .description(keyD("skills.abridgeDenominator")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.skills.abridgeDenominator, @@ -274,8 +276,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var color = Option.createBuilder() - .name(Text.literal("Skill Progress HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Skill Progress HUD"))) + .name(key("skills.color")) + .description(keyD("skills.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.skills.color), @@ -285,8 +287,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Skill Progress HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Skill Progress HUD"))) + .name(key("skills.outlineColor")) + .description(keyD("skills.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.skills.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -297,8 +299,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Skill Progress HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Skill Progress HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("skills.mode")) + .description(keyD("skills.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.skills.mode, @@ -310,8 +312,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Skill Progress HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Skill Progress HUD"))) + .name(key("skills.scale")) + .description(keyD("skills.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.skills.scale, @@ -321,8 +323,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Skill Progress HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Skill Progress HUD"))) + .name(key("skills")) + .description(keyD("skills")) .option(enabled) .option(skillMode) .option(actionsLeft) @@ -395,8 +397,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Skill XP Bar")) - .description(OptionDescription.of(Text.literal("Enables the Skill XP Bar"))) + .name(key("skillBar.enabled")) + .description(keyD("skillBar.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.skillBar.enabled, @@ -406,8 +408,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var color = Option.createBuilder() - .name(Text.literal("Skill XP Bar Color")) - .description(OptionDescription.of(Text.literal("The color of the Skill XP Bar"))) + .name(key("skillBar.color")) + .description(keyD("skillBar.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.skillBar.color), @@ -417,8 +419,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Skill XP Bar Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Skill XP Bar"))) + .name(key("skillBar.scale")) + .description(keyD("skillBar.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.skillBar.scale, @@ -427,8 +429,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); return OptionGroup.createBuilder() - .name(Text.literal("Skill XP Bar")) - .description(OptionDescription.of(Text.literal("Settings for the Skill XP Bar"))) + .name(key("skillBar")) + .description(keyD("skillBar")) .option(enabled) .option(color) .option(scale) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/SpeedHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/SpeedHUD.java index 9415b10..6f8907a 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/SpeedHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/SpeedHUD.java @@ -92,8 +92,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Speed HUD")) - .description(OptionDescription.of(Text.literal("Enables the Speed HUD"))) + .name(key("speed.enabled")) + .description(keyD("speed.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.speed.enabled, @@ -103,8 +103,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); var color = Option.createBuilder() - .name(Text.literal("Speed HUD Color")) - .description(OptionDescription.of(Text.literal("The color of the Speed HUD"))) + .name(key("speed.color")) + .description(keyD("speed.color")) .controller(ColorControllerBuilder::create) .binding( new Color(defaults.huds.speed.color), @@ -114,8 +114,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var outline = Option.createBuilder() - .name(Text.literal("Speed HUD Outline Color")) - .description(OptionDescription.of(Text.literal("The outline color of the Speed HUD"))) + .name(key("speed.outlineColor")) + .description(keyD("speed.outlineColor")) .controller(ColorControllerBuilder::create) .available(config.huds.speed.mode == HudLine.DrawMode.OUTLINE) .binding( @@ -126,8 +126,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mode = Option.createBuilder() - .name(Text.literal("Speed HUD Mode")) - .description(OptionDescription.of(Text.literal("The draw mode of the Speed HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus."))) + .name(key("speed.mode")) + .description(keyD("speed.mode")) .controller(SBTConfig::generateDrawModeController) .binding( defaults.huds.speed.mode, @@ -140,8 +140,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Speed HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Speed HUD"))) + .name(key("speed.scale")) + .description(keyD("speed.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.speed.scale, @@ -151,8 +151,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Speed HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Speed HUD"))) + .name(key("speed")) + .description(keyD("speed")) .option(enabled) .option(mode) .option(color) diff --git a/src/main/java/wtf/cheeze/sbt/features/huds/TickerHUD.java b/src/main/java/wtf/cheeze/sbt/features/huds/TickerHUD.java index ed043d0..a50facd 100644 --- a/src/main/java/wtf/cheeze/sbt/features/huds/TickerHUD.java +++ b/src/main/java/wtf/cheeze/sbt/features/huds/TickerHUD.java @@ -79,8 +79,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var enabled = Option.createBuilder() - .name(Text.literal("Enable Ticker HUD")) - .description(OptionDescription.of(Text.literal("Enables the Ticker/Charges HUD"))) + .name(key("ticker.enabled")) + .description(keyD("ticker.enabled")) .controller(SBTConfig::generateBooleanController) .binding( defaults.huds.ticker.enabled, @@ -89,8 +89,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var scale = Option.createBuilder() - .name(Text.literal("Ticker HUD Scale")) - .description(OptionDescription.of(Text.literal("The scale of the Mana Bar"))) + .name(key("ticker.scale")) + .description(keyD("ticker.scale")) .controller(SBTConfig::generateScaleController) .binding( defaults.huds.ticker.scale, @@ -100,8 +100,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { .build(); return OptionGroup.createBuilder() - .name(Text.literal("Ticker/Charges HUD")) - .description(OptionDescription.of(Text.literal("Settings for the Ticker/Charges HUD"))) + .name(key("ticker")) + .description(keyD("ticker")) .option(enabled) .option(scale) .collapsed(true) diff --git a/src/main/java/wtf/cheeze/sbt/utils/Version.java b/src/main/java/wtf/cheeze/sbt/utils/Version.java index 313e95f..f0f9b5f 100644 --- a/src/main/java/wtf/cheeze/sbt/utils/Version.java +++ b/src/main/java/wtf/cheeze/sbt/utils/Version.java @@ -24,6 +24,7 @@ import dev.isxander.yacl3.api.controller.EnumControllerBuilder; import net.minecraft.text.Text; import wtf.cheeze.sbt.config.ConfigImpl; +import wtf.cheeze.sbt.config.categories.General; import java.util.regex.Pattern; @@ -184,8 +185,8 @@ public Text getDisplayName() { public static Option getStreamOption(ConfigImpl defaults, ConfigImpl config) { return Option.createBuilder() - .name(Text.literal("Update Notification Type")) - .description(OptionDescription.of(Text.literal("What updates you want to be notified about. Alpha will notify you about all updates, Beta will notify you about beta and release updates, Release will only notify you about release updates, and None will disable notifications."))) + .name(General.key("notificationStream")) + .description(General.keyD("notificationStream")) .controller(opt -> EnumControllerBuilder.create(opt).enumClass(NotificationStream.class)) .binding( defaults.notificationStream, diff --git a/src/main/java/wtf/cheeze/sbt/utils/actionbar/ActionBarTransformer.java b/src/main/java/wtf/cheeze/sbt/utils/actionbar/ActionBarTransformer.java index 306c6cc..9e0e492 100644 --- a/src/main/java/wtf/cheeze/sbt/utils/actionbar/ActionBarTransformer.java +++ b/src/main/java/wtf/cheeze/sbt/utils/actionbar/ActionBarTransformer.java @@ -30,6 +30,8 @@ import wtf.cheeze.sbt.features.huds.SkillHUDManager; import wtf.cheeze.sbt.utils.NumberUtils; import wtf.cheeze.sbt.utils.TextUtils; +import static wtf.cheeze.sbt.config.categories.General.key; +import static wtf.cheeze.sbt.config.categories.General.keyD; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -47,15 +49,18 @@ /** * Parses and modifies the action bar text * Inspired by the SkyBlockAddons Action Bar Parser + * TODO: Switch more things in here to regex */ + public class ActionBarTransformer { public static final String SEPERATOR3 = " "; public static final String SEPERATOR4 = " "; public static final String SEPERATOR5 = " "; public static final String SEPERATOR12 = " "; - private static Pattern manaAbilityPattern = Pattern.compile("-(\\d+) Mana \\((.+)\\)"); - private static Pattern skillLevelPatern = Pattern.compile("\\+(\\d+\\.?\\d*) (.+) \\((.+)\\)"); - private static Pattern secretsPattern = Pattern.compile("(\\d+)/(\\d+) Secrets"); + private static final Pattern manaAbilityPattern = Pattern.compile("-(\\d+) Mana \\((.+)\\)"); + //private static Pattern skillLevelPatern = Pattern.compile("\\+(\\d+\\.?\\d*) (.+) \\((.+)\\)"); + private static final Pattern skillLevelPatern = Pattern.compile("\\+([\\d,]+\\.?\\d*) (.+) \\((.+)\\)"); + private static final Pattern secretsPattern = Pattern.compile("(\\d+)/(\\d+) Secrets"); public static ActionBarData extractDataAndRunTransformation(String actionBarText) { try { @@ -130,7 +135,7 @@ public static ActionBarData extractDataAndRunTransformation(String actionBarText } else if (skillLevelPatern.matcher(segment).matches()) { Matcher matcher = skillLevelPatern.matcher(segment); - if (matcher.find()) { + if (matcher.find() && !matcher.group(2).contains("SkyBlock XP")) { data.gainedXP = NumberUtils.parseFloatWithKorM(matcher.group(1)); data.skillType = matcher.group(2); if (matcher.group(3).contains("/")) { @@ -142,8 +147,10 @@ public static ActionBarData extractDataAndRunTransformation(String actionBarText data.skillPercentage = Float.parseFloat(matcher.group(3).replace("%", "")); SkillHUDManager.INSTANCE.update(data.skillType, data.gainedXP, data.skillPercentage); } - } - if (!SBTConfig.get().actionBarFilters.hideSkill) { + if (!SBTConfig.get().actionBarFilters.hideSkill) { + newText += SEPERATOR5 + unpadded; + } + } else { newText += SEPERATOR5 + unpadded; } } else if (segment.contains("Secrets")) { @@ -204,7 +211,7 @@ else if (unpadded.contains("§7§l")) { public static void registerEvents() { ClientReceiveMessageEvents.MODIFY_GAME.register((message, overlay) -> { if (!overlay) return message; - //SkyblockTweaks.LOGGER.info("Old: " + message.getString()); + // SkyblockTweaks.LOGGER.info("Old: " + message.getString()); var data = ActionBarTransformer.extractDataAndRunTransformation(message.getString()); //SkyblockTweaks.LOGGER.info("New: " + data.transformedText); SkyblockTweaks.DATA.update(data); @@ -241,8 +248,8 @@ public static class Config { public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { var health = Option.createBuilder() - .name(Text.literal("Hide Health in Action Bar")) - .description(OptionDescription.of(Text.literal("Hides the health in the action bar"))) + .name(key("actionBarFilters.hideHealth")) + .description(keyD("actionBarFilters.hideHealth")) .controller(SBTConfig::generateBooleanController) .binding( defaults.actionBarFilters.hideHealth, @@ -251,8 +258,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var defense = Option.createBuilder() - .name(Text.literal("Hide Defense in Action Bar")) - .description(OptionDescription.of(Text.literal("Hides the defense in the action bar"))) + .name(key("actionBarFilters.hideDefense")) + .description(keyD("actionBarFilters.hideDefense")) .controller(SBTConfig::generateBooleanController) .binding( defaults.actionBarFilters.hideDefense, @@ -261,8 +268,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var mana = Option.createBuilder() - .name(Text.literal("Hide Mana in Action Bar")) - .description(OptionDescription.of(Text.literal("Hides the mana in the action bar"))) + .name(key("actionBarFilters.hideMana")) + .description(keyD("actionBarFilters.hideMana")) .controller(SBTConfig::generateBooleanController) .binding( defaults.actionBarFilters.hideMana, @@ -271,8 +278,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var ability = Option.createBuilder() - .name(Text.literal("Hide Ability Use in Action Bar")) - .description(OptionDescription.of(Text.literal("Hides the ability use in the action bar"))) + .name(key("actionBarFilters.hideAbilityUse")) + .description(keyD("actionBarFilters.hideAbilityUse")) .controller(SBTConfig::generateBooleanController) .binding( defaults.actionBarFilters.hideAbilityUse, @@ -281,8 +288,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var skill = Option.createBuilder() - .name(Text.literal("Hide Skill in Action Bar")) - .description(OptionDescription.of(Text.literal("Hides the skill in the action bar"))) + .name(key("actionBarFilters.hideSkill")) + .description(keyD("actionBarFilters.hideSkill")) .controller(SBTConfig::generateBooleanController) .binding( defaults.actionBarFilters.hideSkill, @@ -291,8 +298,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var drill = Option.createBuilder() - .name(Text.literal("Hide Drill Fuel in Action Bar")) - .description(OptionDescription.of(Text.literal("Hides the drill fuel in the action bar"))) + .name(key("actionBarFilters.hideDrill")) + .description(keyD("actionBarFilters.hideDrill")) .controller(SBTConfig::generateBooleanController) .binding( defaults.actionBarFilters.hideDrill, @@ -301,8 +308,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var secrets = Option.createBuilder() - .name(Text.literal("Hide Secrets in Action Bar")) - .description(OptionDescription.of(Text.literal("Hides the secrets display in the action bar"))) + .name(key("actionBarFilters.hideSecrets")) + .description(keyD("actionBarFilters.hideSecrets")) .controller(SBTConfig::generateBooleanController) .binding( defaults.actionBarFilters.hideSecrets, @@ -311,8 +318,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); var tickers = Option.createBuilder() - .name(Text.literal("Hide Tickers/Charges in Action Bar")) - .description(OptionDescription.of(Text.literal("Hides the tickers/charges in the action bar"))) + .name(key("actionBarFilters.hideTickers")) + .description(keyD("actionBarFilters.hideTickers")) .controller(SBTConfig::generateBooleanController) .binding( defaults.actionBarFilters.hideTickers, @@ -321,8 +328,8 @@ public static OptionGroup getGroup(ConfigImpl defaults, ConfigImpl config) { ) .build(); return OptionGroup.createBuilder() - .name(Text.literal("Action Bar Filters")) - .description(OptionDescription.of(Text.literal("Filters out certain information from the action bar"))) + .name(key("actionBarFilters")) + .description(keyD("actionBarFilters")) .option(health) .option(defense) .option(mana) diff --git a/src/main/java/wtf/cheeze/sbt/utils/hud/HUD.java b/src/main/java/wtf/cheeze/sbt/utils/hud/HUD.java index 44888b2..e5e3ec2 100644 --- a/src/main/java/wtf/cheeze/sbt/utils/hud/HUD.java +++ b/src/main/java/wtf/cheeze/sbt/utils/hud/HUD.java @@ -19,6 +19,7 @@ package wtf.cheeze.sbt.utils.hud; import dev.isxander.yacl3.api.NameableEnum; +import dev.isxander.yacl3.api.OptionDescription; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.text.Text; @@ -98,6 +99,13 @@ public static float getRelativeY(int y) { return (float) (y / MinecraftClient.getInstance().getWindow().getScaledHeight()); } + private static final String BASE_KEY = "sbt.config.huds."; + public static Text key(String key) { + return Text.translatable(BASE_KEY + key); + } + public static OptionDescription keyD(String key) { + return OptionDescription.of(Text.translatable(BASE_KEY + key + ".desc")); + } public abstract void render(DrawContext context, boolean fromHudScreen, boolean hovered); public enum AnchorPoint implements NameableEnum { diff --git a/src/main/java/wtf/cheeze/sbt/utils/render/RenderUtils.java b/src/main/java/wtf/cheeze/sbt/utils/render/RenderUtils.java index 97fda63..9933204 100644 --- a/src/main/java/wtf/cheeze/sbt/utils/render/RenderUtils.java +++ b/src/main/java/wtf/cheeze/sbt/utils/render/RenderUtils.java @@ -18,13 +18,9 @@ */ package wtf.cheeze.sbt.utils.render; -import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.render.*; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; -import net.minecraft.util.math.Vec3d; import wtf.cheeze.sbt.SkyblockTweaks; public class RenderUtils { diff --git a/src/main/resources/assets/skyblocktweaks/lang/en_us.json b/src/main/resources/assets/skyblocktweaks/lang/en_us.json new file mode 100644 index 0000000..fc16908 --- /dev/null +++ b/src/main/resources/assets/skyblocktweaks/lang/en_us.json @@ -0,0 +1,312 @@ +{ + "sbt.config.chat": "Chat", + "sbt.config.chat.chatProtections": "Chat Protections", + "sbt.config.chat.chatProtections.coop": "Coop Add Confirmation", + "sbt.config.chat.chatProtections.coop.desc": "Requires confirmation before actually sending a /coopadd request", + "sbt.config.chat.chatProtections.desc": "Settings for chat related features", + "sbt.config.chat.chatProtections.ip": "IP Protection", + "sbt.config.chat.chatProtections.ip.desc": "Warns you before sending a message containing an ip address", + "sbt.config.chat.desc": "Settings for chat related features", + "sbt.config.chat.partyFeatures": "Party Features", + "sbt.config.chat.partyFeatures.blockedUsers": "Party Commands Blocked Users", + "sbt.config.chat.partyFeatures.blockedUsers.desc": "Users that are blocked from using party commands", + "sbt.config.chat.partyFeatures.boopInvites": "Boop Invites", + "sbt.config.chat.partyFeatures.boopInvites.desc": "Whether or not to prompt a party invite when booped by a player", + "sbt.config.chat.partyFeatures.cooldown": "Command Cooldown", + "sbt.config.chat.partyFeatures.cooldown.desc": "The cooldown in milliseconds between party commands", + "sbt.config.chat.partyFeatures.desc": "Settings for Party Features", + "sbt.config.chat.partyFeatures.enabled": "Enable Party Commands", + "sbt.config.chat.partyFeatures.enabled.desc": "Whether or not to enable party commands", + "sbt.config.general": "General", + "sbt.config.general.actionBarFilters": "Action Bar Filters", + "sbt.config.general.actionBarFilters.desc": "Filters out certain information from the action bar", + "sbt.config.general.actionBarFilters.hideAbilityUse": "Hide Ability Use in Action Bar", + "sbt.config.general.actionBarFilters.hideAbilityUse.desc": "Hides the ability use in the action bar", + "sbt.config.general.actionBarFilters.hideDefense": "Hide Defense in Action Bar", + "sbt.config.general.actionBarFilters.hideDefense.desc": "Hides the defense in the action bar", + "sbt.config.general.actionBarFilters.hideDrill": "Hide Drill Fuel in Action Bar", + "sbt.config.general.actionBarFilters.hideDrill.desc": "Hides the drill fuel in the action bar", + "sbt.config.general.actionBarFilters.hideHealth": "Hide Health in Action Bar", + "sbt.config.general.actionBarFilters.hideHealth.desc": "Hides the health in the action bar", + "sbt.config.general.actionBarFilters.hideMana": "Hide Mana in Action Bar", + "sbt.config.general.actionBarFilters.hideMana.desc": "Hides the mana in the action bar", + "sbt.config.general.actionBarFilters.hideSecrets": "Hide Secrets in Action Bar", + "sbt.config.general.actionBarFilters.hideSecrets.desc": "Hides the secrets display in the action bar", + "sbt.config.general.actionBarFilters.hideSkill": "Hide Skill in Action Bar", + "sbt.config.general.actionBarFilters.hideSkill.desc": "Hides the skill exp messages in the action bar", + "sbt.config.general.actionBarFilters.hideTickers": "Hide Tickers/Charges in Action Bar", + "sbt.config.general.actionBarFilters.hideTickers.desc": "Hides the tickers/charges in the action bar", + "sbt.config.general.brewingStandOverlay": "Brewing Stand Overlay", + "sbt.config.general.brewingStandOverlay.desc": "Options for the brewing stand overlay", + "sbt.config.general.brewingStandOverlay.enabled": "Brewing Stand Overlay", + "sbt.config.general.brewingStandOverlay.enabled.desc": "Enables the overlay for the brewing stand", + "sbt.config.general.desc": "General settings for SkyblockTweaks", + "sbt.config.general.hudTweaks": "HUD Tweaks", + "sbt.config.general.hudTweaks.desc": "Various tweaks to Minecraft's HUD", + "sbt.config.general.hudTweaks.noRenderArmor": "Disable Armor Bar", + "sbt.config.general.hudTweaks.noRenderArmor.desc": "Disables rendering of the armor bar", + "sbt.config.general.hudTweaks.noRenderBossBar": "Disable Boss Bar", + "sbt.config.general.hudTweaks.noRenderBossBar.desc": "Disables rendering of boss bars", + "sbt.config.general.hudTweaks.noRenderHearts": "Disable Hearts", + "sbt.config.general.hudTweaks.noRenderHearts.desc": "Disables rendering of health hearts ", + "sbt.config.general.hudTweaks.noRenderHunger": "Disable Hunger Bar", + "sbt.config.general.hudTweaks.noRenderHunger.desc": "Disables rendering of the hunger bar", + "sbt.config.general.hudTweaks.noShadowActionBar": "Disable Action Bar Shadow", + "sbt.config.general.hudTweaks.noShadowActionBar.desc": "Removes the shadow from the action bar", + "sbt.config.general.inventory": "Inventory Tweaks", + "sbt.config.general.inventory.desc": "Various tweaks to the inventory screen", + "sbt.config.general.inventory.noRenderPotionHud": "Disable Potion HUD", + "sbt.config.general.inventory.noRenderPotionHud.desc": "Disables rendering of the potion HUD in your inventory", + "sbt.config.general.inventory.redirectRecipeBook": "Redirect Recipe Book Clicks", + "sbt.config.general.inventory.redirectRecipeBook.desc": "Redirects the recipe book button to the SkyBlock recipe book", + "sbt.config.general.menuHighlights": "Menu Highlights", + "sbt.config.general.menuHighlights.desc": "Settings for Menu Highlights and coloring", + "sbt.config.general.menuHighlights.enabledDungeon": "Dungeon Hub Selector Highlights", + "sbt.config.general.menuHighlights.enabledDungeon.desc": "Whether or not to highlight hubs in the dungeon hub selector based on their capacity", + "sbt.config.general.menuHighlights.enabledRegular": "Hub Selector Highlights", + "sbt.config.general.menuHighlights.enabledRegular.desc": "Whether or not to highlight hubs in the hub selector based on their capacity", + "sbt.config.general.menuHighlights.hotmHighlight": "HOTM Highlights", + "sbt.config.general.menuHighlights.hotmHighlight.desc": "Whether or not to highlight HOTM perks based on their status (enabled/disabled)", + "sbt.config.general.menuHighlights.sblevelHighlight": "Task Highlights", + "sbt.config.general.menuHighlights.sblevelHighlight.desc": "Whether or not to highlight items in the /sblevel menu based on their completion status", + "sbt.config.general.menuHighlights.widgetHighlight": "Widget Highlights", + "sbt.config.general.menuHighlights.widgetHighlight.desc": "Whether or not to highlight items in the /widgets menu based on their status (enabled/disabled)", + "sbt.config.general.notificationSream": "Update Notification Type", + "sbt.config.general.notificationSream.desc": "What updates you want to be notified about. Alpha will notify you about all updates, Beta will notify you about beta and release updates, Release will only notify you about release updates, and None will disable notifications.", + "sbt.config.huds": "HUDs", + "sbt.config.huds.coordinates": "Coordinates HUD", + "sbt.config.huds.coordinates.color": "Coordinates HUD Color", + "sbt.config.huds.coordinates.color.desc": "The color of the Coordinates HUD", + "sbt.config.huds.coordinates.decimalPlaces": "Decimal Places", + "sbt.config.huds.coordinates.decimalPlaces.desc": "The number of decimal places to show in the Coordinates HUD", + "sbt.config.huds.coordinates.desc": "Settings for the Coordinates HUD", + "sbt.config.huds.coordinates.enabled": "Enable Coordinates HUD", + "sbt.config.huds.coordinates.enabled.desc": "Enables the Coordinates HUD", + "sbt.config.huds.coordinates.mode": "Coordinates HUD Mode", + "sbt.config.huds.coordinates.mode.desc": "The draw mode of the Coordinates HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.coordinates.outlineColor": "Coordinates HUD Outline Color", + "sbt.config.huds.coordinates.outlineColor.desc": "The outline color of the Coordinates HUD", + "sbt.config.huds.coordinates.scale": "Coordinates HUD Scale", + "sbt.config.huds.coordinates.scale.desc": "The scale of the Coordinates HUD", + "sbt.config.huds.coordinates.showOutside": "Show outside of Skyblock", + "sbt.config.huds.coordinates.showOutside.desc": "Whether to show the Coordinates HUD outside of Skyblock", + "sbt.config.huds.defense": "Defense HUD", + "sbt.config.huds.defense.color": "Defense HUD Color", + "sbt.config.huds.defense.color.desc": "The color of the Defense HUD", + "sbt.config.huds.defense.desc": "Settings for the Defense HUD", + "sbt.config.huds.defense.enabled": "Enable Defense HUD", + "sbt.config.huds.defense.enabled.desc": "Enables the Defense HUD", + "sbt.config.huds.defense.icon": "Defense HUD Icon", + "sbt.config.huds.defense.icon.desc": "Enables the icon (❈) in the Defense HUD", + "sbt.config.huds.defense.mode": "Defense HUD Mode", + "sbt.config.huds.defense.mode.desc": "The draw mode of the Defense HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.defense.outlineColor": "Defense HUD Outline Color", + "sbt.config.huds.defense.outlineColor.desc": "The outline color of the Defense HUD", + "sbt.config.huds.defense.scale": "Defense HUD Scale", + "sbt.config.huds.defense.scale.desc": "The scale of the Defense HUD", + "sbt.config.huds.defense.separator": "Defense HUD Separator", + "sbt.config.huds.defense.separator.desc": "The separator for the Defense HUD", + "sbt.config.huds.desc": "Settings for various HUDs", + "sbt.config.huds.dr": "Damage Reduction HUD", + "sbt.config.huds.dr.color": "Damage Reduction HUD Color", + "sbt.config.huds.dr.color.desc": "The color of the Damage Reduction HUD", + "sbt.config.huds.dr.desc": "Settings for the Damage Reduction HUD", + "sbt.config.huds.dr.enabled": "Enable Damage Reduction HUD", + "sbt.config.huds.dr.enabled.desc": "Enables the Damage Reduction HUD", + "sbt.config.huds.dr.mode": "Damage Reduction HUD Mode", + "sbt.config.huds.dr.mode.desc": "The draw mode of the Damage Reduction HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.dr.outlineColor": "Damage Reduction HUD Outline Color", + "sbt.config.huds.dr.outlineColor.desc": "The outline color of the Damage Reduction HUD", + "sbt.config.huds.dr.scale": "Damage Reduction HUD Scale", + "sbt.config.huds.dr.scale.desc": "The scale of the Damage Reduction HUD", + "sbt.config.huds.drillFuel": "Drill Fuel HUD", + "sbt.config.huds.drillFuel.abridgeSecondNumber": "Abridge Max Fuel", + "sbt.config.huds.drillFuel.abridgeSecondNumber.desc": "Replaces thousands with k in the max fuel in the Drill Fuel HUD", + "sbt.config.huds.drillFuel.color": "Drill Fuel HUD Color", + "sbt.config.huds.drillFuel.color.desc": "The color of the Drill Fuel HUD", + "sbt.config.huds.drillFuel.desc": "Settings for the Drill Fuel HUD", + "sbt.config.huds.drillFuel.enabled": "Enable Drill Fuel HUD", + "sbt.config.huds.drillFuel.enabled.desc": "Enables the Drill Fuel HUD", + "sbt.config.huds.drillFuel.mode": "Drill Fuel HUD Mode", + "sbt.config.huds.drillFuel.mode.desc": "The draw mode of the Drill Fuel HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.drillFuel.outlineColor": "Drill Fuel HUD Outline Color", + "sbt.config.huds.drillFuel.outlineColor.desc": "The outline color of the Drill Fuel HUD", + "sbt.config.huds.drillFuel.scale": "Drill Fuel HUD Scale", + "sbt.config.huds.drillFuel.scale.desc": "The scale of the Drill Fuel HUD", + "sbt.config.huds.drillFuel.separator": "Drill Fuel HUD Separator", + "sbt.config.huds.drillFuel.separator.desc": "The separator for the Drill Fuel HUD", + "sbt.config.huds.drillFuelBar": "Drill Fuel Bar", + "sbt.config.huds.drillFuelBar.color": "Drill Fuel Bar Color", + "sbt.config.huds.drillFuelBar.color.desc": "The color of the Drill Fuel Bar", + "sbt.config.huds.drillFuelBar.desc": "Settings for the Drill Fuel Bar", + "sbt.config.huds.drillFuelBar.enabled": "Enable Drill Fuel Bar", + "sbt.config.huds.drillFuelBar.enabled.desc": "Enables the Drill Fuel Bar", + "sbt.config.huds.drillFuelBar.scale": "Drill Fuel Bar Scale", + "sbt.config.huds.drillFuelBar.scale.desc": "The scale of the Drill Fuel Bar", + "sbt.config.huds.ehp": "Effective Health HUD", + "sbt.config.huds.ehp.color": "Effective Health HUD Color", + "sbt.config.huds.ehp.color.desc": "The color of the Effective Health HUD", + "sbt.config.huds.ehp.desc": "Settings for the Effective Health HUD", + "sbt.config.huds.ehp.enabled": "Enable Effective Health HUD", + "sbt.config.huds.ehp.enabled.desc": "Enables the Effective Health HUD", + "sbt.config.huds.ehp.icon": "Effective Health HUD Icon", + "sbt.config.huds.ehp.icon.desc": "Enables the icon (❤) in the Effective Health HUD", + "sbt.config.huds.ehp.mode": "Effective Health HUD Mode", + "sbt.config.huds.ehp.mode.desc": "The draw mode of the Effective Health HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.ehp.outlineColor": "Effective Health HUD Outline Color", + "sbt.config.huds.ehp.outlineColor.desc": "The outline color of the Effective Health HUD", + "sbt.config.huds.ehp.scale": "Effective Health HUD Scale", + "sbt.config.huds.ehp.scale.desc": "The scale of the Effective Health HUD", + "sbt.config.huds.ehp.separator": "Effective Health HUD Separator", + "sbt.config.huds.ehp.separator.desc": "The separator for the Effective Health HUD", + "sbt.config.huds.fps": "FPS HUD", + "sbt.config.huds.fps.color": "FPS HUD Color", + "sbt.config.huds.fps.color.desc": "The color of the FPS HUD", + "sbt.config.huds.fps.desc": "Settings for the FPS HUD", + "sbt.config.huds.fps.enabled": "Enable FPS HUD", + "sbt.config.huds.fps.enabled.desc": "Enables the FPS HUD", + "sbt.config.huds.fps.mode": "FPS HUD Mode", + "sbt.config.huds.fps.mode.desc": "The draw mode of the FPS HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.fps.outlineColor": "FPS HUD Outline Color", + "sbt.config.huds.fps.outlineColor.desc": "The outline color of the FPS HUD", + "sbt.config.huds.fps.reverse": "Reverse FPS HUD", + "sbt.config.huds.fps.reverse.desc": "Whether to show the FPS as 'FPS: 123' instead of '123 FPS'", + "sbt.config.huds.fps.scale": "FPS HUD Scale", + "sbt.config.huds.fps.scale.desc": "The scale of the FPS HUD", + "sbt.config.huds.fps.showOutside": "Show outside of Skyblock", + "sbt.config.huds.fps.showOutside.desc": "Whether to show the FPS HUD outside of Skyblock", + "sbt.config.huds.health": "Health HUD", + "sbt.config.huds.health.color": "Health HUD Color", + "sbt.config.huds.health.color.desc": "The color of the Health HUD", + "sbt.config.huds.health.colorAbsorption": "Health HUD Absorption Color", + "sbt.config.huds.health.colorAbsorption.desc": "The color of the Health HUD when you have absorption", + "sbt.config.huds.health.desc": "Settings for the Health HUD", + "sbt.config.huds.health.enabled": "Enable Health HUD", + "sbt.config.huds.health.enabled.desc": "Enables the Health HUD", + "sbt.config.huds.health.icon": "Health HUD Icon", + "sbt.config.huds.health.icon.desc": "Enables the icon (❤) in the Health HUD", + "sbt.config.huds.health.mode": "Health HUD Mode", + "sbt.config.huds.health.mode.desc": "The draw mode of the Health HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.health.outlineColor": "Health HUD Outline Color", + "sbt.config.huds.health.outlineColor.desc": "The outline color of the Health HUD", + "sbt.config.huds.health.scale": "Health HUD Scale", + "sbt.config.huds.health.scale.desc": "The scale of the Health HUD", + "sbt.config.huds.health.separator": "Health HUD Separator", + "sbt.config.huds.health.separator.desc": "The separator for the Health HUD", + "sbt.config.huds.healthBar": "Health Bar", + "sbt.config.huds.healthBar.color": "Health Bar Color", + "sbt.config.huds.healthBar.color.desc": "The color of the Health Bar", + "sbt.config.huds.healthBar.colorAbsorption": "Health Bar Absorption Color", + "sbt.config.huds.healthBar.colorAbsorption.desc": "The color of the Health Bar when you have absorption", + "sbt.config.huds.healthBar.desc": "Settings for the Health Bar", + "sbt.config.huds.healthBar.enabled": "Enable Health Bar", + "sbt.config.huds.healthBar.enabled.desc": "Enables the Health Bar", + "sbt.config.huds.healthBar.scale": "Health Bar Scale", + "sbt.config.huds.healthBar.scale.desc": "The scale of the Health Bar", + "sbt.config.huds.mana": "Mana HUD", + "sbt.config.huds.mana.color": "Mana HUD Color", + "sbt.config.huds.mana.color.desc": "The color of the Mana HUD", + "sbt.config.huds.mana.desc": "Settings for the Mana HUD", + "sbt.config.huds.mana.enabled": "Enable Mana HUD", + "sbt.config.huds.mana.enabled.desc": "Enables the Mana HUD", + "sbt.config.huds.mana.icon": "Mana HUD Icon", + "sbt.config.huds.mana.icon.desc": "Enables the icon (✎) in the Mana HUD", + "sbt.config.huds.mana.mode": "Mana HUD Mode", + "sbt.config.huds.mana.mode.desc": "The draw mode of the Mana HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.mana.outlineColor": "Mana HUD Outline Color", + "sbt.config.huds.mana.outlineColor.desc": "The outline color of the Mana HUD", + "sbt.config.huds.mana.scale": "Mana HUD Scale", + "sbt.config.huds.mana.scale.desc": "The scale of the Mana HUD", + "sbt.config.huds.mana.separator": "Mana HUD Separator", + "sbt.config.huds.mana.separator.desc": "The separator for the Mana HUD", + "sbt.config.huds.manaBar": "Mana Bar", + "sbt.config.huds.manaBar.color": "Mana Bar Color", + "sbt.config.huds.manaBar.color.desc": "The color of the Mana Bar", + "sbt.config.huds.manaBar.desc": "Settings for the Mana Bar", + "sbt.config.huds.manaBar.enabled": "Enable Mana Bar", + "sbt.config.huds.manaBar.enabled.desc": "Enables the Mana Bar", + "sbt.config.huds.manaBar.scale": "Mana Bar Scale", + "sbt.config.huds.manaBar.scale.desc": "The scale of the Mana Bar", + "sbt.config.huds.overflowMana": "Overflow Mana HUD", + "sbt.config.huds.overflowMana.color": "Overflow Mana HUD Color", + "sbt.config.huds.overflowMana.color.desc": "The color of the Overflow Mana HUD", + "sbt.config.huds.overflowMana.desc": "Settings for the Overflow Mana HUD", + "sbt.config.huds.overflowMana.enabled": "Enable Overflow Mana HUD", + "sbt.config.huds.overflowMana.enabled.desc": "Enables the Overflow Mana HUD", + "sbt.config.huds.overflowMana.hideWhenZero": "Hide Overflow Mana HUD when Zero", + "sbt.config.huds.overflowMana.hideWhenZero.desc": "Hides the Overflow Mana HUD when the value is zero", + "sbt.config.huds.overflowMana.icon": "Overflow Mana HUD Icon", + "sbt.config.huds.overflowMana.icon.desc": "Enables the icon (ʬ) in the Overflow Mana HUD", + "sbt.config.huds.overflowMana.mode": "Overflow Mana HUD Mode", + "sbt.config.huds.overflowMana.mode.desc": "The draw mode of the Overflow Mana HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.overflowMana.outlineColor": "Overflow Mana HUD Outline Color", + "sbt.config.huds.overflowMana.outlineColor.desc": "The outline color of the Overflow Mana HUD", + "sbt.config.huds.overflowMana.scale": "Overflow Mana HUD Scale", + "sbt.config.huds.overflowMana.scale.desc": "The scale of the Overflow Mana HUD", + "sbt.config.huds.overflowMana.separator": "Overflow Mana HUD Separator", + "sbt.config.huds.overflowMana.separator.desc": "The separator for the Overflow Mana HUD", + "sbt.config.huds.skillBar": "Skill XP Bar", + "sbt.config.huds.skillBar.color": "Skill XP Bar Color", + "sbt.config.huds.skillBar.color.desc": "The color of the Skill XP Bar", + "sbt.config.huds.skillBar.desc": "Settings for the Skill XP Bar", + "sbt.config.huds.skillBar.enabled": "Enable Skill XP Bar", + "sbt.config.huds.skillBar.enabled.desc": "Enables the Skill XP Bar", + "sbt.config.huds.skillBar.scale": "Skill XP Bar Scale", + "sbt.config.huds.skillBar.scale.desc": "The scale of the Skill XP Bar", + "sbt.config.huds.skills": "Skill Progress HUD", + "sbt.config.huds.skills.abridgeDenominator": "Skill Progress HUD Abridge Denominator", + "sbt.config.huds.skills.abridgeDenominator.desc": "Abridges the denominator in the Skill Progress HUD", + "sbt.config.huds.skills.actionsLeft": "Skill Progress HUD Actions Left", + "sbt.config.huds.skills.actionsLeft.desc": "Shows the amount of actions left to level up in the Skill Progress HUD", + "sbt.config.huds.skills.color": "Skill Progress HUD Color", + "sbt.config.huds.skills.color.desc": "The color of the Skill Progress HUD", + "sbt.config.huds.skills.desc": "Settings for the Skill Progress HUD", + "sbt.config.huds.skills.enabled": "Enable Skill Progress HUD", + "sbt.config.huds.skills.enabled.desc": "Enables the Skill Progress HUD", + "sbt.config.huds.skills.mode": "Skill Progress HUD Mode", + "sbt.config.huds.skills.mode.desc": "The draw mode of the Skill Progress HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.skills.outlineColor": "Skill Progress HUD Outline Color", + "sbt.config.huds.skills.outlineColor.desc": "The outline color of the Skill Progress HUD", + "sbt.config.huds.skills.scale": "Skill Progress HUD Scale", + "sbt.config.huds.skills.scale.desc": "The scale of the Skill Progress HUD", + "sbt.config.huds.skills.skillMode": "Skill Progress HUD Mode", + "sbt.config.huds.skills.skillMode.desc": "The mode of the Skill Progress HUD.\nDefault will show the progress based on how Hypixel does by default\nNumber always will show the progress as a number\nPercent will always show the progress as a percentage", + "sbt.config.huds.speed": "Speed HUD", + "sbt.config.huds.speed.color": "Speed HUD Color", + "sbt.config.huds.speed.color.desc": "The color of the Speed HUD", + "sbt.config.huds.speed.desc": "Settings for the Speed HUD", + "sbt.config.huds.speed.enabled": "Enable Speed HUD", + "sbt.config.huds.speed.enabled.desc": "Enables the Speed HUD", + "sbt.config.huds.speed.mode": "Speed HUD Mode", + "sbt.config.huds.speed.mode.desc": "The draw mode of the Speed HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.speed.outlineColor": "Speed HUD Outline Color", + "sbt.config.huds.speed.outlineColor.desc": "The outline color of the Speed HUD", + "sbt.config.huds.speed.scale": "Speed HUD Scale", + "sbt.config.huds.speed.scale.desc": "The scale of the Speed HUD", + "sbt.config.huds.ticker": "Ticker/Charges HUD", + "sbt.config.huds.ticker.desc": "Settings for the Ticker/Charges HUD", + "sbt.config.huds.ticker.enabled": "Enable Ticker HUD", + "sbt.config.huds.ticker.enabled.desc": "Enables the Ticker/Charges HUD", + "sbt.config.huds.ticker.scale": "Ticker HUD Scale", + "sbt.config.huds.ticker.scale.desc": "The scale of the Ticker/Charges HUD", + "sbt.config.huds.time": "Real Time HUD", + "sbt.config.huds.time.amPM": "Show AM/PM", + "sbt.config.huds.time.amPM.desc": "Whether to show AM/PM in the Real Time HUD", + "sbt.config.huds.time.color": "Real Time HUD Color", + "sbt.config.huds.time.color.desc": "The color of the Real Time HUD", + "sbt.config.huds.time.desc": "Settings for the Real Time HUD", + "sbt.config.huds.time.enabled": "Enable Real Time HUD", + "sbt.config.huds.time.enabled.desc": "Enables the Real Time HUD", + "sbt.config.huds.time.mode": "Real Time HUD Mode", + "sbt.config.huds.time.mode.desc": "The draw mode of the Real Time HUD. Pure will render without shadow, Shadow will render with a shadow, and Outline will render with an outline\n§4Warning: §cOutline mode is still a work in progress and can cause annoying visual bugs in menus.", + "sbt.config.huds.time.outlineColor": "Real Time HUD Outline Color", + "sbt.config.huds.time.outlineColor.desc": "The outline color of the Real Time HUD", + "sbt.config.huds.time.scale": "Real Time HUD Scale", + "sbt.config.huds.time.scale.desc": "The scale of the Real Time HUD", + "sbt.config.huds.time.seconds": "Show Seconds", + "sbt.config.huds.time.seconds.desc": "Whether to show the seconds in the Real Time HUD", + "sbt.config.huds.time.showOutside": "Show outside of Skyblock", + "sbt.config.huds.time.showOutside.desc": "Whether to show the Real Time HUD outside of Skyblock", + "sbt.config.huds.time.twelveHour": "12 Hour Time", + "sbt.config.huds.time.twelveHour.desc": "Whether to use the 12 hour format in the Real Time HUD" +} \ No newline at end of file