aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/config
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-09-26 12:58:40 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2023-09-26 12:58:40 -0400
commit84aedfe464bc648cbb18b4f2a7eaeb695091b2b5 (patch)
tree6e6bf0121e445e64e7185c7a691b4fa798f110ef /src/main/java/me/xmrvizzy/skyblocker/config
parent04f97400a0216d7fdd1154b8c8fa64ac65df63cb (diff)
downloadSkyblocker-84aedfe464bc648cbb18b4f2a7eaeb695091b2b5.tar.gz
Skyblocker-84aedfe464bc648cbb18b4f2a7eaeb695091b2b5.tar.bz2
Skyblocker-84aedfe464bc648cbb18b4f2a7eaeb695091b2b5.zip
Rename Config Files
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/config')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/ConfigModel.java809
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java859
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfigManager.java88
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/categories/DiscordRPCCategory.java6
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/categories/DungeonsCategory.java6
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/categories/DwarvenMinesCategory.java6
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/categories/GeneralCategory.java20
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/categories/LocationsCategory.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/categories/MessageFilterCategory.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/categories/QuickNavigationCategory.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/categories/SlayersCategory.java4
11 files changed, 905 insertions, 905 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/ConfigModel.java b/src/main/java/me/xmrvizzy/skyblocker/config/ConfigModel.java
deleted file mode 100644
index a8f27a35..00000000
--- a/src/main/java/me/xmrvizzy/skyblocker/config/ConfigModel.java
+++ /dev/null
@@ -1,809 +0,0 @@
-package me.xmrvizzy.skyblocker.config;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-
-import dev.isxander.yacl3.config.ConfigEntry;
-import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
-import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
-import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.skyblock.item.CustomArmorTrims;
-import net.minecraft.client.resource.language.I18n;
-import net.minecraft.text.Text;
-import net.minecraft.util.Formatting;
-
-@SuppressWarnings("deprecation")
-public class ConfigModel {
- @ConfigEntry
- public int version = 1;
-
- @ConfigEntry
- public General general = new General();
-
- @ConfigEntry
- public Locations locations = new Locations();
-
- @ConfigEntry
- public Slayer slayer = new Slayer();
-
- @ConfigEntry
- public QuickNav quickNav = new QuickNav();
-
- @ConfigEntry
- public Messages messages = new Messages();
-
- @ConfigEntry
- public RichPresence richPresence = new RichPresence();
-
- public static class QuickNav {
- @ConfigEntry
- public boolean enableQuickNav = true;
-
- @ConfigEntry
- public QuickNavItem button1 = new QuickNavItem(true, new ItemData("diamond_sword"), "Your Skills", "/skills");
-
- @ConfigEntry
- public QuickNavItem button2 = new QuickNavItem(true, new ItemData("painting"), "Collections", "/collection");
-
- /* REGEX Explanation
- * "Pets" : simple match on letters
- * "(?: \\(\\d+\\/\\d+\\))?" : optional match on the non-capturing group for the page in the format " ($number/$number)"
- */
- @ConfigEntry
- public QuickNavItem button3 = new QuickNavItem(true, new ItemData("bone"), "Pets(:? \\(\\d+\\/\\d+\\))?", "/pets");
-
- /* REGEX Explanation
- * "Wardrobe" : simple match on letters
- * " \\([12]\\/2\\)" : match on the page either " (1/2)" or " (2/2)"
- */
- @ConfigEntry
- public QuickNavItem button4 = new QuickNavItem(true,
- new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe \\([12]/2\\)",
- "/wardrobe");
-
- @ConfigEntry
- public QuickNavItem button5 = new QuickNavItem(true, new ItemData("player_head", 1,
- "tag:{SkullOwner:{Id:[I;-2081424676,-57521078,-2073572414,158072763],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTU5MTMxMDU4NTYwOSwKICAicHJvZmlsZUlkIiA6ICI0MWQzYWJjMmQ3NDk0MDBjOTA5MGQ1NDM0ZDAzODMxYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJNZWdha2xvb24iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODBhMDc3ZTI0OGQxNDI3NzJlYTgwMDg2NGY4YzU3OGI5ZDM2ODg1YjI5ZGFmODM2YjY0YTcwNjg4MmI2ZWMxMCIKICAgIH0KICB9Cn0=\"}]}}}"),
- "Sack of Sacks", "/sacks");
-
- /* REGEX Explanation
- * "(?:Rift )?" : optional match on the non-capturing group "Rift "
- * "Storage" : simple match on letters
- * "(?: \\([12]\\/2\\))?" : optional match on the non-capturing group " (1/2)" or " (2/2)"
- */
- @ConfigEntry
- public QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"),
- "(?:Rift )?Storage(?: \\(1/2\\))?", "/storage");
-
- @ConfigEntry
- public QuickNavItem button7 = new QuickNavItem(true, new ItemData("player_head", 1,
- "tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}"),
- "none", "/hub");
-
- @ConfigEntry
- public QuickNavItem button8 = new QuickNavItem(true, new ItemData("player_head", 1,
- "tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}"),
- "none", "/warp dungeon_hub");
-
- @ConfigEntry
- public QuickNavItem button9 = new QuickNavItem(true, new ItemData("player_head", 1,
- "tag:{SkullOwner:{Id:[I;-562285948,532499670,-1705302742,775653035],Properties:{textures:[{Value:\"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjVkZjU1NTkyNjQzMGQ1ZDc1YWRlZDIxZGQ5NjE5Yjc2YzViN2NhMmM3ZjU0MDE0NDA1MjNkNTNhOGJjZmFhYiJ9fX0=\"}]}}}"),
- "Visit prtl", "/visit prtl");
-
- @ConfigEntry
- public QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant Item",
- "/etable");
-
- @ConfigEntry
- public QuickNavItem button11 = new QuickNavItem(true, new ItemData("anvil"), "Anvil", "/anvil");
-
- @ConfigEntry
- public QuickNavItem button12 = new QuickNavItem(true, new ItemData("crafting_table"), "Craft Item", "/craft");
- }
-
- public static class QuickNavItem {
- public QuickNavItem(Boolean render, ItemData itemData, String uiTitle, String clickEvent) {
- this.render = render;
- this.item = itemData;
- this.clickEvent = clickEvent;
- this.uiTitle = uiTitle;
- }
-
- @ConfigEntry
- public Boolean render;
-
- @ConfigEntry
- public ItemData item;
-
- @ConfigEntry
- public String uiTitle;
-
- @ConfigEntry
- public String clickEvent;
- }
-
- public static class ItemData {
- public ItemData(String itemName, int count, String nbt) {
- this.itemName = itemName;
- this.count = count;
- this.nbt = nbt;
- }
-
- public ItemData(String itemName) {
- this.itemName = itemName;
- this.count = 1;
- this.nbt = "";
- }
-
- @ConfigEntry
- public String itemName;
-
- @ConfigEntry
- public int count;
-
- @ConfigEntry
- public String nbt;
- }
-
- public static class General {
- @ConfigEntry
- public boolean acceptReparty = true;
-
- @ConfigEntry
- public boolean backpackPreviewWithoutShift = false;
-
- @ConfigEntry
- public boolean compactorDeletorPreview = true;
-
- @ConfigEntry
- public boolean hideEmptyTooltips = true;
-
- @ConfigEntry
- public boolean hideStatusEffectOverlay = false;
-
- @ConfigEntry
- public TabHudConf tabHud = new TabHudConf();
-
- @ConfigEntry
- public Bars bars = new Bars();
-
- @ConfigEntry
- public Experiments experiments = new Experiments();
-
- @ConfigEntry
- public Fishing fishing = new Fishing();
-
- @ConfigEntry
- public FairySouls fairySouls = new FairySouls();
-
- @ConfigEntry
- public Shortcuts shortcuts = new Shortcuts();
-
- @ConfigEntry
- public QuiverWarning quiverWarning = new QuiverWarning();
-
- @ConfigEntry
- public ItemList itemList = new ItemList();
-
- @ConfigEntry
- public ItemTooltip itemTooltip = new ItemTooltip();
-
- @ConfigEntry
- public ItemInfoDisplay itemInfoDisplay = new ItemInfoDisplay();
-
- @ConfigEntry
- public SpecialEffects specialEffects = new SpecialEffects();
-
- @ConfigEntry
- public Hitbox hitbox = new Hitbox();
-
- @ConfigEntry
- public TitleContainer titleContainer = new TitleContainer();
-
- @ConfigEntry
- public TeleportOverlay teleportOverlay = new TeleportOverlay();
-
- @ConfigEntry
- public List<Integer> lockedSlots = new ArrayList<>();
-
- @ConfigEntry
- public Object2ObjectOpenHashMap<String, Text> customItemNames = new Object2ObjectOpenHashMap<>();
-
- @ConfigEntry
- public Object2IntOpenHashMap<String> customDyeColors = new Object2IntOpenHashMap<>();
-
- @ConfigEntry
- public Object2ObjectOpenHashMap<String, CustomArmorTrims.ArmorTrimId> customArmorTrims = new Object2ObjectOpenHashMap<>();
- }
-
- public static class TabHudConf {
- @ConfigEntry
- public boolean tabHudEnabled = true;
-
- @ConfigEntry
- public int tabHudScale = 100;
-
- @ConfigEntry
- public boolean plainPlayerNames = false;
-
- @ConfigEntry
- public NameSorting nameSorting = NameSorting.DEFAULT;
- }
-
- public enum NameSorting {
- DEFAULT, ALPHABETICAL;
-
- @Override
- public String toString() {
- return switch (this) {
- case DEFAULT -> "Default";
- case ALPHABETICAL -> "Alphabetical";
- };
- }
- }
-
- public static class Bars {
- @ConfigEntry
- public boolean enableBars = true;
-
- @ConfigEntry
- public BarPositions barpositions = new BarPositions();
- }
-
- public static class BarPositions {
- @ConfigEntry
- public BarPosition healthBarPosition = BarPosition.LAYER1;
-
- @ConfigEntry
- public BarPosition manaBarPosition = BarPosition.LAYER1;
-
- @ConfigEntry
- public BarPosition defenceBarPosition = BarPosition.LAYER1;
-
- @ConfigEntry
- public BarPosition experienceBarPosition = BarPosition.LAYER1;
-
- }
-
- public enum BarPosition {
- LAYER1, LAYER2, RIGHT, NONE;
-
- @Override
- public String toString() {
- return I18n.translate("text.autoconfig.skyblocker.option.general.bars.barpositions." + name());
- }
-
- public int toInt() {
- return switch (this) {
- case LAYER1 -> 0;
- case LAYER2 -> 1;
- case RIGHT -> 2;
- case NONE -> -1;
- };
- }
- }
-
- public static class Experiments {
- @ConfigEntry
- public boolean enableChronomatronSolver = true;
-
- @ConfigEntry
- public boolean enableSuperpairsSolver = true;
-
- @ConfigEntry
- public boolean enableUltrasequencerSolver = true;
- }
-
- public static class Fishing {
- @ConfigEntry
- public boolean enableFishingHelper = true;
- }
-
- public static class FairySouls {
- @ConfigEntry
- public boolean enableFairySoulsHelper = false;
-
- @ConfigEntry
- public boolean highlightFoundSouls = true;
-
- @ConfigEntry
- public boolean highlightOnlyNearbySouls = false;
- }
-
- public static class Shortcuts {
- @ConfigEntry
- public boolean enableShortcuts = true;
-
- @ConfigEntry
- public boolean enableCommandShortcuts = true;
-
- @ConfigEntry
- public boolean enableCommandArgShortcuts = true;
- }
-
- public static class QuiverWarning {
- @ConfigEntry
- public boolean enableQuiverWarning = true;
-
- @ConfigEntry
- public boolean enableQuiverWarningInDungeons = true;
-
- @ConfigEntry
- public boolean enableQuiverWarningAfterDungeon = true;
- }
-
- public static class Hitbox {
- @ConfigEntry
- public boolean oldFarmlandHitbox = true;
-
- @ConfigEntry
- public boolean oldLeverHitbox = false;
- }
-
- public static class TitleContainer {
- @ConfigEntry
- public float titleContainerScale = 100;
-
- @ConfigEntry
- public int x = 540;
-
- @ConfigEntry
- public int y = 10;
-
- @ConfigEntry
- public Direction direction = Direction.HORIZONTAL;
-
- @ConfigEntry
- public Alignment alignment = Alignment.MIDDLE;
- }
-
- public static class TeleportOverlay {
- @ConfigEntry
- public boolean enableTeleportOverlays = true;
-
- @ConfigEntry
- public boolean enableWeirdTransmission = true;
-
- @ConfigEntry
- public boolean enableInstantTransmission = true;
-
- @ConfigEntry
- public boolean enableEtherTransmission = true;
-
- @ConfigEntry
- public boolean enableSinrecallTransmission = true;
-
- @ConfigEntry
- public boolean enableWitherImpact = true;
- }
-
- public enum Direction {
- HORIZONTAL, VERTICAL;
-
- @Override
- public String toString() {
- return switch (this) {
- case HORIZONTAL -> "Horizontal";
- case VERTICAL -> "Vertical";
- };
- }
- }
-
- public enum Alignment {
- LEFT, RIGHT, MIDDLE;
-
- @Override
- public String toString() {
- return switch (this) {
- case LEFT -> "Left";
- case RIGHT -> "Right";
- case MIDDLE -> "Middle";
- };
- }
- }
-
- public static class RichPresence {
- @ConfigEntry
- public boolean enableRichPresence = false;
-
- @ConfigEntry
- public Info info = Info.LOCATION;
-
- @ConfigEntry
- public boolean cycleMode = false;
-
- @ConfigEntry
- public String customMessage = "Playing Skyblock";
- }
-
- public static class ItemList {
- @ConfigEntry
- public boolean enableItemList = true;
- }
-
- public enum Average {
- ONE_DAY, THREE_DAY, BOTH;
-
- @Override
- public String toString() {
- return I18n.translate("text.autoconfig.skyblocker.option.general.itemTooltip.avg." + name());
- }
- }
-
- public static class ItemTooltip {
- @ConfigEntry
- public boolean enableNPCPrice = true;
-
- @ConfigEntry
- public boolean enableMotesPrice = true;
-
- @ConfigEntry
- public boolean enableAvgBIN = true;
-
- @ConfigEntry
- public Average avg = Average.THREE_DAY;
-
- @ConfigEntry
- public boolean enableLowestBIN = true;
-
- @ConfigEntry
- public boolean enableBazaarPrice = true;
-
- @ConfigEntry
- public boolean enableMuseumDate = true;
- }
-
- public static class ItemInfoDisplay {
- @ConfigEntry
- public boolean attributeShardInfo = true;
- }
-
- public static class SpecialEffects {
- @ConfigEntry
- public boolean rareDungeonDropEffects = true;
- }
-
- public static class Locations {
- @ConfigEntry
- public Barn barn = new Barn();
-
- @ConfigEntry
- public Dungeons dungeons = new Dungeons();
-
- @ConfigEntry
- public DwarvenMines dwarvenMines = new DwarvenMines();
-
- @ConfigEntry
- public Rift rift = new Rift();
-
- @ConfigEntry
- public SpidersDen spidersDen = new SpidersDen();
- }
-
- public static class Dungeons {
- @ConfigEntry
- public SecretWaypoints secretWaypoints = new SecretWaypoints();
-
- @ConfigEntry
- public DungeonChestProfit dungeonChestProfit = new DungeonChestProfit();
-
- @ConfigEntry
- public boolean croesusHelper = true;
-
- @ConfigEntry
- public boolean enableMap = true;
-
- @ConfigEntry
- public float mapScaling = 1f;
-
- @ConfigEntry
- public int mapX = 2;
-
- @ConfigEntry
- public int mapY = 2;
-
- @ConfigEntry
- public boolean starredMobGlow = true;
-
- @ConfigEntry
- public boolean solveThreeWeirdos = true;
-
- @ConfigEntry
- public boolean blazesolver = true;
-
- @ConfigEntry
- public boolean solveTrivia = true;
-
- @ConfigEntry
- public boolean solveTicTacToe = true;
-
- @ConfigEntry
- public LividColor lividColor = new LividColor();
-
- @ConfigEntry
- public Terminals terminals = new Terminals();
- }
-
- public static class SecretWaypoints {
- @ConfigEntry
- public boolean enableSecretWaypoints = true;
-
- @ConfigEntry
- public boolean noInitSecretWaypoints = false;
-
- @ConfigEntry
- public boolean enableEntranceWaypoints = true;
-
- @ConfigEntry
- public boolean enableSuperboomWaypoints = true;
-
- @ConfigEntry
- public boolean enableChestWaypoints = true;
-
- @ConfigEntry
- public boolean enableItemWaypoints = true;
-
- @ConfigEntry
- public boolean enableBatWaypoints = true;
-
- @ConfigEntry
- public boolean enableWitherWaypoints = true;
-
- @ConfigEntry
- public boolean enableLeverWaypoints = true;
-
- @ConfigEntry
- public boolean enableFairySoulWaypoints = true;
-
- @ConfigEntry
- public boolean enableStonkWaypoints = true;
-
- @ConfigEntry
- public boolean enableDefaultWaypoints = true;
- }
-
- public static class DungeonChestProfit {
- @ConfigEntry
- public boolean enableProfitCalculator = true;
-
- @ConfigEntry
- public boolean includeKismet = false;
-
- @ConfigEntry
- public boolean includeEssence = true;
-
- @ConfigEntry
- public int neutralThreshold = 1000;
-
- @ConfigEntry
- public FormattingOption neutralColor = FormattingOption.DARK_GRAY;
-
- @ConfigEntry
- public FormattingOption profitColor = FormattingOption.DARK_GREEN;
-
- @ConfigEntry
- public FormattingOption lossColor = FormattingOption.RED;
-
- @ConfigEntry
- public FormattingOption incompleteColor = FormattingOption.BLUE;
-
- }
-
- public enum FormattingOption {
- BLACK(Formatting.BLACK),
- DARK_BLUE(Formatting.DARK_BLUE),
- DARK_GREEN(Formatting.DARK_GREEN),
- DARK_AQUA(Formatting.DARK_AQUA),
- DARK_RED(Formatting.DARK_RED),
- DARK_PURPLE(Formatting.DARK_PURPLE),
- GOLD(Formatting.GOLD),
- GRAY(Formatting.GRAY),
- DARK_GRAY(Formatting.DARK_GRAY),
- BLUE(Formatting.BLUE),
- GREEN(Formatting.GREEN),
- AQUA(Formatting.AQUA),
- RED(Formatting.RED),
- LIGHT_PURPLE(Formatting.LIGHT_PURPLE),
- YELLOW(Formatting.YELLOW),
- WHITE(Formatting.WHITE),
- OBFUSCATED(Formatting.OBFUSCATED),
- BOLD(Formatting.BOLD),
- STRIKETHROUGH(Formatting.STRIKETHROUGH),
- UNDERLINE(Formatting.UNDERLINE),
- ITALIC(Formatting.ITALIC),
- RESET(Formatting.RESET);
-
- public final Formatting formatting;
-
-
- FormattingOption(Formatting formatting) {
- this.formatting = formatting;
- }
-
- @Override
- public String toString() {
- return StringUtils.capitalize(formatting.getName().replaceAll("_", " "));
- }
- }
-
- public static class LividColor {
- @ConfigEntry
- public boolean enableLividColor = true;
-
- @ConfigEntry
- public String lividColorText = "The livid color is [color]";
- }
-
- public static class Terminals {
- @ConfigEntry
- public boolean solveColor = true;
-
- @ConfigEntry
- public boolean solveOrder = true;
-
- @ConfigEntry
- public boolean solveStartsWith = true;
- }
-
- public static class DwarvenMines {
- @ConfigEntry
- public boolean enableDrillFuel = true;
-
- @ConfigEntry
- public boolean solveFetchur = true;
-
- @ConfigEntry
- public boolean solvePuzzler = true;
-
- @ConfigEntry
- public DwarvenHud dwarvenHud = new DwarvenHud();
- }
-
- public static class DwarvenHud {
- @ConfigEntry
- public boolean enabled = true;
-
- @ConfigEntry
- public DwarvenHudStyle style = DwarvenHudStyle.SIMPLE;
-
- @ConfigEntry
- public boolean enableBackground = true;
-
- @ConfigEntry
- public int x = 10;
-
- @ConfigEntry
- public int y = 10;
- }
-
- public enum DwarvenHudStyle {
- SIMPLE, FANCY, CLASSIC;
-
- @Override
- public String toString() {
- return switch (this) {
- case SIMPLE -> "Simple";
- case FANCY -> "Fancy";
- case CLASSIC -> "Classic";
- };
- }
- }
-
- public static class Barn {
- @ConfigEntry
- public boolean solveHungryHiker = true;
-
- @ConfigEntry
- public boolean solveTreasureHunter = true;
- }
-
- public static class Rift {
- @ConfigEntry
- public boolean mirrorverseWaypoints = true;
-
- @ConfigEntry
- public int mcGrubberStacks = 0;
- }
-
- public static class SpidersDen {
- @ConfigEntry
- public Relics relics = new Relics();
- }
-
- public static class Relics {
- @ConfigEntry
- public boolean enableRelicsHelper = false;
-
- @ConfigEntry
- public boolean highlightFoundRelics = true;
- }
-
- public static class Slayer {
- @ConfigEntry
- public VampireSlayer vampireSlayer = new VampireSlayer();
- }
-
- public static class VampireSlayer {
- @ConfigEntry
- public boolean enableEffigyWaypoints = true;
-
- @ConfigEntry
- public boolean compactEffigyWaypoints;
-
- @ConfigEntry
- public int effigyUpdateFrequency = 5;
-
- @ConfigEntry
- public boolean enableHolyIceIndicator = true;
-
- @ConfigEntry
- public int holyIceIndicatorTickDelay = 10;
-
- @ConfigEntry
- public int holyIceUpdateFrequency = 5;
-
- @ConfigEntry
- public boolean enableHealingMelonIndicator = true;
-
- @ConfigEntry
- public float healingMelonHealthThreshold = 4f;
-
- @ConfigEntry
- public boolean enableSteakStakeIndicator = true;
-
- @ConfigEntry
- public int steakStakeUpdateFrequency = 5;
-
- @ConfigEntry
- public boolean enableManiaIndicator = true;
-
- @ConfigEntry
- public int maniaUpdateFrequency = 5;
- }
-
- public static class Messages {
- @ConfigEntry
- public ChatFilterResult hideAbility = ChatFilterResult.PASS;
-
- @ConfigEntry
- public ChatFilterResult hideHeal = ChatFilterResult.PASS;
-
- @ConfigEntry
- public ChatFilterResult hideAOTE = ChatFilterResult.PASS;
-
- @ConfigEntry
- public ChatFilterResult hideImplosion = ChatFilterResult.PASS;
-
- @ConfigEntry
- public ChatFilterResult hideMoltenWave = ChatFilterResult.PASS;
-
- @ConfigEntry
- public ChatFilterResult hideAds = ChatFilterResult.PASS;
-
- @ConfigEntry
- public ChatFilterResult hideTeleportPad = ChatFilterResult.PASS;
-
- @ConfigEntry
- public ChatFilterResult hideCombo = ChatFilterResult.PASS;
-
- @ConfigEntry
- public ChatFilterResult hideAutopet = ChatFilterResult.PASS;
-
- @ConfigEntry
- public ChatFilterResult hideShowOff = ChatFilterResult.PASS;
-
- @ConfigEntry
- public boolean hideMana = false;
- }
-
- public enum Info {
- PURSE, BITS, LOCATION;
-
- @Override
- public String toString() {
- return I18n.translate("text.autoconfig.skyblocker.option.richPresence.info." + name());
- }
- }
-}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index 9020d7a0..4207b495 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -1,88 +1,809 @@
package me.xmrvizzy.skyblocker.config;
-import java.lang.StackWalker.Option;
-import java.nio.file.Path;
-import com.mojang.brigadier.builder.LiteralArgumentBuilder;
-
-import dev.isxander.yacl3.api.YetAnotherConfigLib;
-import dev.isxander.yacl3.config.GsonConfigInstance;
-import me.xmrvizzy.skyblocker.SkyblockerMod;
-import me.xmrvizzy.skyblocker.config.categories.DiscordRPCCategory;
-import me.xmrvizzy.skyblocker.config.categories.DungeonsCategory;
-import me.xmrvizzy.skyblocker.config.categories.DwarvenMinesCategory;
-import me.xmrvizzy.skyblocker.config.categories.GeneralCategory;
-import me.xmrvizzy.skyblocker.config.categories.MessageFilterCategory;
-import me.xmrvizzy.skyblocker.config.categories.LocationsCategory;
-import me.xmrvizzy.skyblocker.config.categories.QuickNavigationCategory;
-import me.xmrvizzy.skyblocker.config.categories.SlayersCategory;
-import me.xmrvizzy.skyblocker.utils.scheduler.Scheduler;
-import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
-import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
-import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
-import net.fabricmc.loader.api.FabricLoader;
-import net.minecraft.client.gui.screen.Screen;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+
+import dev.isxander.yacl3.config.ConfigEntry;
+import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
+import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
+import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
+import me.xmrvizzy.skyblocker.skyblock.item.CustomArmorTrims;
+import net.minecraft.client.resource.language.I18n;
import net.minecraft.text.Text;
+import net.minecraft.util.Formatting;
@SuppressWarnings("deprecation")
public class SkyblockerConfig {
- private static final Path PATH = FabricLoader.getInstance().getConfigDir().resolve("skyblocker.json");
- private static final GsonConfigInstance<ConfigModel> INSTANCE = GsonConfigInstance.createBuilder(ConfigModel.class)
- .setPath(PATH)
- .overrideGsonBuilder(ConfigSerializer.INSTANCE)
- .build();
- /*private static final ConfigClassHandler<ConfigModel> HANDLER = ConfigClassHandler.createBuilder(ConfigModel.class)
- .serializer(config -> GsonConfigSerializerBuilder.create(config)
- .setPath(PATH)
- .setJson5(false)
- .overrideGsonBuilder(ConfigSerializer.INSTANCE)
- .build())
- .build();*/
+ @ConfigEntry
+ public int version = 1;
- public static ConfigModel get() {
- return INSTANCE.getConfig();
+ @ConfigEntry
+ public General general = new General();
+
+ @ConfigEntry
+ public Locations locations = new Locations();
+
+ @ConfigEntry
+ public Slayer slayer = new Slayer();
+
+ @ConfigEntry
+ public QuickNav quickNav = new QuickNav();
+
+ @ConfigEntry
+ public Messages messages = new Messages();
+
+ @ConfigEntry
+ public RichPresence richPresence = new RichPresence();
+
+ public static class QuickNav {
+ @ConfigEntry
+ public boolean enableQuickNav = true;
+
+ @ConfigEntry
+ public QuickNavItem button1 = new QuickNavItem(true, new ItemData("diamond_sword"), "Your Skills", "/skills");
+
+ @ConfigEntry
+ public QuickNavItem button2 = new QuickNavItem(true, new ItemData("painting"), "Collections", "/collection");
+
+ /* REGEX Explanation
+ * "Pets" : simple match on letters
+ * "(?: \\(\\d+\\/\\d+\\))?" : optional match on the non-capturing group for the page in the format " ($number/$number)"
+ */
+ @ConfigEntry
+ public QuickNavItem button3 = new QuickNavItem(true, new ItemData("bone"), "Pets(:? \\(\\d+\\/\\d+\\))?", "/pets");
+
+ /* REGEX Explanation
+ * "Wardrobe" : simple match on letters
+ * " \\([12]\\/2\\)" : match on the page either " (1/2)" or " (2/2)"
+ */
+ @ConfigEntry
+ public QuickNavItem button4 = new QuickNavItem(true,
+ new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe \\([12]/2\\)",
+ "/wardrobe");
+
+ @ConfigEntry
+ public QuickNavItem button5 = new QuickNavItem(true, new ItemData("player_head", 1,
+ "tag:{SkullOwner:{Id:[I;-2081424676,-57521078,-2073572414,158072763],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTU5MTMxMDU4NTYwOSwKICAicHJvZmlsZUlkIiA6ICI0MWQzYWJjMmQ3NDk0MDBjOTA5MGQ1NDM0ZDAzODMxYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJNZWdha2xvb24iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODBhMDc3ZTI0OGQxNDI3NzJlYTgwMDg2NGY4YzU3OGI5ZDM2ODg1YjI5ZGFmODM2YjY0YTcwNjg4MmI2ZWMxMCIKICAgIH0KICB9Cn0=\"}]}}}"),
+ "Sack of Sacks", "/sacks");
+
+ /* REGEX Explanation
+ * "(?:Rift )?" : optional match on the non-capturing group "Rift "
+ * "Storage" : simple match on letters
+ * "(?: \\([12]\\/2\\))?" : optional match on the non-capturing group " (1/2)" or " (2/2)"
+ */
+ @ConfigEntry
+ public QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"),
+ "(?:Rift )?Storage(?: \\(1/2\\))?", "/storage");
+
+ @ConfigEntry
+ public QuickNavItem button7 = new QuickNavItem(true, new ItemData("player_head", 1,
+ "tag:{SkullOwner:{Id:[I;-300151517,-631415889,-1193921967,-1821784279],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDdjYzY2ODc0MjNkMDU3MGQ1NTZhYzUzZTA2NzZjYjU2M2JiZGQ5NzE3Y2Q4MjY5YmRlYmVkNmY2ZDRlN2JmOCJ9fX0=\"}]}}}"),
+ "none", "/hub");
+
+ @ConfigEntry
+ public QuickNavItem button8 = new QuickNavItem(true, new ItemData("player_head", 1,
+ "tag:{SkullOwner:{Id:[I;1605800870,415127827,-1236127084,15358548],Properties:{textures:[{Value:\"e3RleHR1cmVzOntTS0lOOnt1cmw6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzg5MWQ1YjI3M2ZmMGJjNTBjOTYwYjJjZDg2ZWVmMWM0MGExYjk0MDMyYWU3MWU3NTQ3NWE1NjhhODI1NzQyMSJ9fX0=\"}]}}}"),
+ "none", "/warp dungeon_hub");
+
+ @ConfigEntry
+ public QuickNavItem button9 = new QuickNavItem(true, new ItemData("player_head", 1,
+ "tag:{SkullOwner:{Id:[I;-562285948,532499670,-1705302742,775653035],Properties:{textures:[{Value:\"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjVkZjU1NTkyNjQzMGQ1ZDc1YWRlZDIxZGQ5NjE5Yjc2YzViN2NhMmM3ZjU0MDE0NDA1MjNkNTNhOGJjZmFhYiJ9fX0=\"}]}}}"),
+ "Visit prtl", "/visit prtl");
+
+ @ConfigEntry
+ public QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant Item",
+ "/etable");
+
+ @ConfigEntry
+ public QuickNavItem button11 = new QuickNavItem(true, new ItemData("anvil"), "Anvil", "/anvil");
+
+ @ConfigEntry
+ public QuickNavItem button12 = new QuickNavItem(true, new ItemData("crafting_table"), "Craft Item", "/craft");
+ }
+
+ public static class QuickNavItem {
+ public QuickNavItem(Boolean render, ItemData itemData, String uiTitle, String clickEvent) {
+ this.render = render;
+ this.item = itemData;
+ this.clickEvent = clickEvent;
+ this.uiTitle = uiTitle;
+ }
+
+ @ConfigEntry
+ public Boolean render;
+
+ @ConfigEntry
+ public ItemData item;
+
+ @ConfigEntry
+ public String uiTitle;
+
+ @ConfigEntry
+ public String clickEvent;
+ }
+
+ public static class ItemData {
+ public ItemData(String itemName, int count, String nbt) {
+ this.itemName = itemName;
+ this.count = count;
+ this.nbt = nbt;
+ }
+
+ public ItemData(String itemName) {
+ this.itemName = itemName;
+ this.count = 1;
+ this.nbt = "";
+ }
+
+ @ConfigEntry
+ public String itemName;
+
+ @ConfigEntry
+ public int count;
+
+ @ConfigEntry
+ public String nbt;
+ }
+
+ public static class General {
+ @ConfigEntry
+ public boolean acceptReparty = true;
+
+ @ConfigEntry
+ public boolean backpackPreviewWithoutShift = false;
+
+ @ConfigEntry
+ public boolean compactorDeletorPreview = true;
+
+ @ConfigEntry
+ public boolean hideEmptyTooltips = true;
+
+ @ConfigEntry
+ public boolean hideStatusEffectOverlay = false;
+
+ @ConfigEntry
+ public TabHudConf tabHud = new TabHudConf();
+
+ @ConfigEntry
+ public Bars bars = new Bars();
+
+ @ConfigEntry
+ public Experiments experiments = new Experiments();
+
+ @ConfigEntry
+ public Fishing fishing = new Fishing();
+
+ @ConfigEntry
+ public FairySouls fairySouls = new FairySouls();
+
+ @ConfigEntry
+ public Shortcuts shortcuts = new Shortcuts();
+
+ @ConfigEntry
+ public QuiverWarning quiverWarning = new QuiverWarning();
+
+ @ConfigEntry
+ public ItemList itemList = new ItemList();
+
+ @ConfigEntry
+ public ItemTooltip itemTooltip = new ItemTooltip();
+
+ @ConfigEntry
+ public ItemInfoDisplay itemInfoDisplay = new ItemInfoDisplay();
+
+ @ConfigEntry
+ public SpecialEffects specialEffects = new SpecialEffects();
+
+ @ConfigEntry
+ public Hitbox hitbox = new Hitbox();
+
+ @ConfigEntry
+ public TitleContainer titleContainer = new TitleContainer();
+
+ @ConfigEntry
+ public TeleportOverlay teleportOverlay = new TeleportOverlay();
+
+ @ConfigEntry
+ public List<Integer> lockedSlots = new ArrayList<>();
+
+ @ConfigEntry
+ public Object2ObjectOpenHashMap<String, Text> customItemNames = new Object2ObjectOpenHashMap<>();
+
+ @ConfigEntry
+ public Object2IntOpenHashMap<String> customDyeColors = new Object2IntOpenHashMap<>();
+
+ @ConfigEntry
+ public Object2ObjectOpenHashMap<String, CustomArmorTrims.ArmorTrimId> customArmorTrims = new Object2ObjectOpenHashMap<>();
+ }
+
+ public static class TabHudConf {
+ @ConfigEntry
+ public boolean tabHudEnabled = true;
+
+ @ConfigEntry
+ public int tabHudScale = 100;
+
+ @ConfigEntry
+ public boolean plainPlayerNames = false;
+
+ @ConfigEntry
+ public NameSorting nameSorting = NameSorting.DEFAULT;
+ }
+
+ public enum NameSorting {
+ DEFAULT, ALPHABETICAL;
+
+ @Override
+ public String toString() {
+ return switch (this) {
+ case DEFAULT -> "Default";
+ case ALPHABETICAL -> "Alphabetical";
+ };
+ }
+ }
+
+ public static class Bars {
+ @ConfigEntry
+ public boolean enableBars = true;
+
+ @ConfigEntry
+ public BarPositions barpositions = new BarPositions();
+ }
+
+ public static class BarPositions {
+ @ConfigEntry
+ public BarPosition healthBarPosition = BarPosition.LAYER1;
+
+ @ConfigEntry
+ public BarPosition manaBarPosition = BarPosition.LAYER1;
+
+ @ConfigEntry
+ public BarPosition defenceBarPosition = BarPosition.LAYER1;
+
+ @ConfigEntry
+ public BarPosition experienceBarPosition = BarPosition.LAYER1;
+
+ }
+
+ public enum BarPosition {
+ LAYER1, LAYER2, RIGHT, NONE;
+
+ @Override
+ public String toString() {
+ return I18n.translate("text.autoconfig.skyblocker.option.general.bars.barpositions." + name());
+ }
+
+ public int toInt() {
+ return switch (this) {
+ case LAYER1 -> 0;
+ case LAYER2 -> 1;
+ case RIGHT -> 2;
+ case NONE -> -1;
+ };
+ }
+ }
+
+ public static class Experiments {
+ @ConfigEntry
+ public boolean enableChronomatronSolver = true;
+
+ @ConfigEntry
+ public boolean enableSuperpairsSolver = true;
+
+ @ConfigEntry
+ public boolean enableUltrasequencerSolver = true;
+ }
+
+ public static class Fishing {
+ @ConfigEntry
+ public boolean enableFishingHelper = true;
+ }
+
+ public static class FairySouls {
+ @ConfigEntry
+ public boolean enableFairySoulsHelper = false;
+
+ @ConfigEntry
+ public boolean highlightFoundSouls = true;
+
+ @ConfigEntry
+ public boolean highlightOnlyNearbySouls = false;
+ }
+
+ public static class Shortcuts {
+ @ConfigEntry
+ public boolean enableShortcuts = true;
+
+ @ConfigEntry
+ public boolean enableCommandShortcuts = true;
+
+ @ConfigEntry
+ public boolean enableCommandArgShortcuts = true;
}
- /**
- * This method is caller sensitive and can only be called by the mod initializer,
- * this is enforced.
- */
- public static void init() {
- if (StackWalker.getInstance(Option.RETAIN_CLASS_REFERENCE).getCallerClass() != SkyblockerMod.class) {
- throw new RuntimeException("Skyblocker: Called config init from an illegal place!");
+ public static class QuiverWarning {
+ @ConfigEntry
+ public boolean enableQuiverWarning = true;
+
+ @ConfigEntry
+ public boolean enableQuiverWarningInDungeons = true;
+
+ @ConfigEntry
+ public boolean enableQuiverWarningAfterDungeon = true;
+ }
+
+ public static class Hitbox {
+ @ConfigEntry
+ public boolean oldFarmlandHitbox = true;
+
+ @ConfigEntry
+ public boolean oldLeverHitbox = false;
+ }
+
+ public static class TitleContainer {
+ @ConfigEntry
+ public float titleContainerScale = 100;
+
+ @ConfigEntry
+ public int x = 540;
+
+ @ConfigEntry
+ public int y = 10;
+
+ @ConfigEntry
+ public Direction direction = Direction.HORIZONTAL;
+
+ @ConfigEntry
+ public Alignment alignment = Alignment.MIDDLE;
+ }
+
+ public static class TeleportOverlay {
+ @ConfigEntry
+ public boolean enableTeleportOverlays = true;
+
+ @ConfigEntry
+ public boolean enableWeirdTransmission = true;
+
+ @ConfigEntry
+ public boolean enableInstantTransmission = true;
+
+ @ConfigEntry
+ public boolean enableEtherTransmission = true;
+
+ @ConfigEntry
+ public boolean enableSinrecallTransmission = true;
+
+ @ConfigEntry
+ public boolean enableWitherImpact = true;
+ }
+
+ public enum Direction {
+ HORIZONTAL, VERTICAL;
+
+ @Override
+ public String toString() {
+ return switch (this) {
+ case HORIZONTAL -> "Horizontal";
+ case VERTICAL -> "Vertical";
+ };
+ }
+ }
+
+ public enum Alignment {
+ LEFT, RIGHT, MIDDLE;
+
+ @Override
+ public String toString() {
+ return switch (this) {
+ case LEFT -> "Left";
+ case RIGHT -> "Right";
+ case MIDDLE -> "Middle";
+ };
}
+ }
+
+ public static class RichPresence {
+ @ConfigEntry
+ public boolean enableRichPresence = false;
+
+ @ConfigEntry
+ public Info info = Info.LOCATION;
+
+ @ConfigEntry
+ public boolean cycleMode = false;
- INSTANCE.load();
- ClientCommandRegistrationCallback.EVENT.register(((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal(SkyblockerMod.NAMESPACE).then(optionsLiteral("config")).then(optionsLiteral("options")))));
+ @ConfigEntry
+ public String customMessage = "Playing Skyblock";
+ }
+
+ public static class ItemList {
+ @ConfigEntry
+ public boolean enableItemList = true;
+ }
+
+ public enum Average {
+ ONE_DAY, THREE_DAY, BOTH;
+
+ @Override
+ public String toString() {
+ return I18n.translate("text.autoconfig.skyblocker.option.general.itemTooltip.avg." + name());
+ }
+ }
+
+ public static class ItemTooltip {
+ @ConfigEntry
+ public boolean enableNPCPrice = true;
+
+ @ConfigEntry
+ public boolean enableMotesPrice = true;
+
+ @ConfigEntry
+ public boolean enableAvgBIN = true;
+
+ @ConfigEntry
+ public Average avg = Average.THREE_DAY;
+
+ @ConfigEntry
+ public boolean enableLowestBIN = true;
+
+ @ConfigEntry
+ public boolean enableBazaarPrice = true;
+
+ @ConfigEntry
+ public boolean enableMuseumDate = true;
+ }
+
+ public static class ItemInfoDisplay {
+ @ConfigEntry
+ public boolean attributeShardInfo = true;
}
- public static void save() {
- INSTANCE.save();
+ public static class SpecialEffects {
+ @ConfigEntry
+ public boolean rareDungeonDropEffects = true;
+ }
+
+ public static class Locations {
+ @ConfigEntry
+ public Barn barn = new Barn();
+
+ @ConfigEntry
+ public Dungeons dungeons = new Dungeons();
+
+ @ConfigEntry
+ public DwarvenMines dwarvenMines = new DwarvenMines();
+
+ @ConfigEntry
+ public Rift rift = new Rift();
+
+ @ConfigEntry
+ public SpidersDen spidersDen = new SpidersDen();
+ }
+
+ public static class Dungeons {
+ @ConfigEntry
+ public SecretWaypoints secretWaypoints = new SecretWaypoints();
+
+ @ConfigEntry
+ public DungeonChestProfit dungeonChestProfit = new DungeonChestProfit();
+
+ @ConfigEntry
+ public boolean croesusHelper = true;
+
+ @ConfigEntry
+ public boolean enableMap = true;
+
+ @ConfigEntry
+ public float mapScaling = 1f;
+
+ @ConfigEntry
+ public int mapX = 2;
+
+ @ConfigEntry
+ public int mapY = 2;
+
+ @ConfigEntry
+ public boolean starredMobGlow = true;
+
+ @ConfigEntry
+ public boolean solveThreeWeirdos = true;
+
+ @ConfigEntry
+ public boolean blazesolver = true;
+
+ @ConfigEntry
+ public boolean solveTrivia = true;
+
+ @ConfigEntry
+ public boolean solveTicTacToe = true;
+
+ @ConfigEntry
+ public LividColor lividColor = new LividColor();
+
+ @ConfigEntry
+ public Terminals terminals = new Terminals();
+ }
+
+ public static class SecretWaypoints {
+ @ConfigEntry
+ public boolean enableSecretWaypoints = true;
+
+ @ConfigEntry
+ public boolean noInitSecretWaypoints = false;
+
+ @ConfigEntry
+ public boolean enableEntranceWaypoints = true;
+
+ @ConfigEntry
+ public boolean enableSuperboomWaypoints = true;
+
+ @ConfigEntry
+ public boolean enableChestWaypoints = true;
+
+ @ConfigEntry
+ public boolean enableItemWaypoints = true;
+
+ @ConfigEntry
+ public boolean enableBatWaypoints = true;
+
+ @ConfigEntry
+ public boolean enableWitherWaypoints = true;
+
+ @ConfigEntry
+ public boolean enableLeverWaypoints = true;
+
+ @ConfigEntry
+ public boolean enableFairySoulWaypoints = true;
+
+ @ConfigEntry
+ public boolean enableStonkWaypoints = true;
+
+ @ConfigEntry
+ public boolean enableDefaultWaypoints = true;
}
- public static Screen createGUI(Screen parent) {
- return YetAnotherConfigLib.create(INSTANCE, (defaults, config, builder) -> {
- return builder
- .title(Text.literal("Skyblocker"))
- .category(GeneralCategory.create(defaults, config))
- .category(DungeonsCategory.create(defaults, config))
- .category(DwarvenMinesCategory.create(defaults, config))
- .category(LocationsCategory.create(defaults, config))
- .category(SlayersCategory.create(defaults, config))
- .category(QuickNavigationCategory.create(defaults, config))
- .category(MessageFilterCategory.create(defaults, config))
- .category(DiscordRPCCategory.create(defaults, config));
-
- }).generateScreen(parent);
+ public static class DungeonChestProfit {
+ @ConfigEntry
+ public boolean enableProfitCalculator = true;
+
+ @ConfigEntry
+ public boolean includeKismet = false;
+
+ @ConfigEntry
+ public boolean includeEssence = true;
+
+ @ConfigEntry
+ public int neutralThreshold = 1000;
+
+ @ConfigEntry
+ public FormattingOption neutralColor = FormattingOption.DARK_GRAY;
+
+ @ConfigEntry
+ public FormattingOption profitColor = FormattingOption.DARK_GREEN;
+
+ @ConfigEntry
+ public FormattingOption lossColor = FormattingOption.RED;
+
+ @ConfigEntry
+ public FormattingOption incompleteColor = FormattingOption.BLUE;
+
}
- /**
- * Registers an options command with the given name. Used for registering both options and config as valid commands.
- *
- * @param name the name of the command node
- * @return the command builder
- */
- private static LiteralArgumentBuilder<FabricClientCommandSource> optionsLiteral(String name) {
- // Don't immediately open the next screen as it will be closed by ChatScreen right after this command is executed
- return ClientCommandManager.literal(name).executes(Scheduler.queueOpenScreenCommand(() -> createGUI(null)));
+ public enum FormattingOption {
+ BLACK(Formatting.BLACK),
+ DARK_BLUE(Formatting.DARK_BLUE),
+ DARK_GREEN(Formatting.DARK_GREEN),
+ DARK_AQUA(Formatting.DARK_AQUA),
+ DARK_RED(Formatting.DARK_RED),
+ DARK_PURPLE(Formatting.DARK_PURPLE),
+ GOLD(Formatting.GOLD),
+ GRAY(Formatting.GRAY),
+ DARK_GRAY(Formatting.DARK_GRAY),
+ BLUE(Formatting.BLUE),
+ GREEN(Formatting.GREEN),
+ AQUA(Formatting.AQUA),
+ RED(Formatting.RED),
+ LIGHT_PURPLE(Formatting.LIGHT_PURPLE),
+ YELLOW(Formatting.YELLOW),
+ WHITE(Formatting.WHITE),
+ OBFUSCATED(Formatting.OBFUSCATED),
+ BOLD(Formatting.BOLD),
+ STRIKETHROUGH(Formatting.STRIKETHROUGH),
+ UNDERLINE(Formatting.UNDERLINE),
+ ITALIC(Formatting.ITALIC),
+ RESET(Formatting.RESET);
+
+ public final Formatting formatting;
+
+
+ FormattingOption(Formatting formatting) {
+ this.formatting = formatting;
+ }
+
+ @Override
+ public String toString() {
+ return StringUtils.capitalize(formatting.getName().replaceAll("_", " "));
+ }
+ }
+
+ public static class LividColor {
+ @ConfigEntry
+ public boolean enableLividColor = true;
+
+ @ConfigEntry
+ public String lividColorText = "The livid color is [color]";
+ }
+
+ public static class Terminals {
+ @ConfigEntry
+ public boolean solveColor = true;
+
+ @ConfigEntry
+ public boolean solveOrder = true;
+
+ @ConfigEntry
+ public boolean solveStartsWith = true;
+ }
+
+ public static class DwarvenMines {
+ @ConfigEntry
+ public boolean enableDrillFuel = true;
+
+ @ConfigEntry
+ public boolean solveFetchur = true;
+
+ @ConfigEntry
+ public boolean solvePuzzler = true;
+
+ @ConfigEntry
+ public DwarvenHud dwarvenHud = new DwarvenHud();
+ }
+
+ public static class DwarvenHud {
+ @ConfigEntry
+ public boolean enabled = true;
+
+ @ConfigEntry
+ public DwarvenHudStyle style = DwarvenHudStyle.SIMPLE;
+
+ @ConfigEntry
+ public boolean enableBackground = true;
+
+ @ConfigEntry
+ public int x = 10;
+
+ @ConfigEntry
+ public int y = 10;
+ }
+
+ public enum DwarvenHudStyle {
+ SIMPLE, FANCY, CLASSIC;
+
+ @Override
+ public String toString() {
+ return switch (this) {
+ case SIMPLE -> "Simple";
+ case FANCY -> "Fancy";
+ case CLASSIC -> "Classic";
+ };
+ }
+ }
+
+ public static class Barn {
+ @ConfigEntry
+ public boolean solveHungryHiker = true;
+
+ @ConfigEntry
+ public boolean solveTreasureHunter = true;
+ }
+
+ public static class Rift {
+ @ConfigEntry
+ public boolean mirrorverseWaypoints = true;
+
+ @ConfigEntry
+ public int mcGrubberStacks = 0;
+ }
+
+ public static class SpidersDen {
+ @ConfigEntry
+ public Relics relics = new Relics();
+ }
+
+ public static class Relics {
+ @ConfigEntry
+ public boolean enableRelicsHelper = false;
+
+ @ConfigEntry
+ public boolean highlightFoundRelics = true;
+ }
+
+ public static class Slayer {
+ @ConfigEntry
+ public VampireSlayer vampireSlayer = new VampireSlayer();
+ }
+
+ public static class VampireSlayer {
+ @ConfigEntry
+ public boolean enableEffigyWaypoints = true;
+
+ @ConfigEntry
+ public boolean compactEffigyWaypoints;
+
+ @ConfigEntry
+ public int effigyUpdateFrequency = 5;
+
+ @ConfigEntry
+ public boolean enableHolyIceIndicator = true;
+
+ @ConfigEntry
+ public int holyIceIndicatorTickDelay = 10;
+
+ @ConfigEntry
+ public int holyIceUpdateFrequency = 5;
+
+ @ConfigEntry
+ public boolean enableHealingMelonIndicator = true;
+
+ @ConfigEntry
+ public float healingMelonHealthThreshold = 4f;
+
+ @ConfigEntry
+ public boolean enableSteakStakeIndicator = true;
+
+ @ConfigEntry
+ public int steakStakeUpdateFrequency = 5;
+
+ @ConfigEntry
+ public boolean enableManiaIndicator = true;
+
+ @ConfigEntry
+ public int maniaUpdateFrequency = 5;
+ }
+
+ public static class Messages {
+ @ConfigEntry
+ public ChatFilterResult hideAbility = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public ChatFilterResult hideHeal = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public ChatFilterResult hideAOTE = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public ChatFilterResult hideImplosion = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public ChatFilterResult hideMoltenWave = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public ChatFilterResult hideAds = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public ChatFilterResult hideTeleportPad = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public ChatFilterResult hideCombo = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public ChatFilterResult hideAutopet = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public ChatFilterResult hideShowOff = ChatFilterResult.PASS;
+
+ @ConfigEntry
+ public boolean hideMana = false;
+ }
+
+ public enum Info {
+ PURSE, BITS, LOCATION;
+
+ @Override
+ public String toString() {
+ return I18n.translate("text.autoconfig.skyblocker.option.richPresence.info." + name());
+ }
}
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfigManager.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfigManager.java
new file mode 100644
index 00000000..534dde6d
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfigManager.java
@@ -0,0 +1,88 @@
+package me.xmrvizzy.skyblocker.config;
+
+import java.lang.StackWalker.Option;
+import java.nio.file.Path;
+import com.mojang.brigadier.builder.LiteralArgumentBuilder;
+
+import dev.isxander.yacl3.api.YetAnotherConfigLib;
+import dev.isxander.yacl3.config.GsonConfigInstance;
+import me.xmrvizzy.skyblocker.SkyblockerMod;
+import me.xmrvizzy.skyblocker.config.categories.DiscordRPCCategory;
+import me.xmrvizzy.skyblocker.config.categories.DungeonsCategory;
+import me.xmrvizzy.skyblocker.config.categories.DwarvenMinesCategory;
+import me.xmrvizzy.skyblocker.config.categories.GeneralCategory;
+import me.xmrvizzy.skyblocker.config.categories.MessageFilterCategory;
+import me.xmrvizzy.skyblocker.config.categories.LocationsCategory;
+import me.xmrvizzy.skyblocker.config.categories.QuickNavigationCategory;
+import me.xmrvizzy.skyblocker.config.categories.SlayersCategory;
+import me.xmrvizzy.skyblocker.utils.scheduler.Scheduler;
+import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
+import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
+import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
+import net.fabricmc.loader.api.FabricLoader;
+import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.text.Text;
+
+@SuppressWarnings("deprecation")
+public class SkyblockerConfigManager {
+ private static final Path PATH = FabricLoader.getInstance().getConfigDir().resolve("skyblocker.json");
+ private static final GsonConfigInstance<SkyblockerConfig> INSTANCE = GsonConfigInstance.createBuilder(SkyblockerConfig.class)
+ .setPath(PATH)
+ .overrideGsonBuilder(ConfigSerializer.INSTANCE)
+ .build();
+ /*private static final ConfigClassHandler<ConfigModel> HANDLER = ConfigClassHandler.createBuilder(ConfigModel.class)
+ .serializer(config -> GsonConfigSerializerBuilder.create(config)
+ .setPath(PATH)
+ .setJson5(false)
+ .overrideGsonBuilder(ConfigSerializer.INSTANCE)
+ .build())
+ .build();*/
+
+ public static SkyblockerConfig get() {
+ return INSTANCE.getConfig();
+ }
+
+ /**
+ * This method is caller sensitive and can only be called by the mod initializer,
+ * this is enforced.
+ */
+ public static void init() {
+ if (StackWalker.getInstance(Option.RETAIN_CLASS_REFERENCE).getCallerClass() != SkyblockerMod.class) {
+ throw new RuntimeException("Skyblocker: Called config init from an illegal place!");
+ }
+
+ INSTANCE.load();
+ ClientCommandRegistrationCallback.EVENT.register(((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal(SkyblockerMod.NAMESPACE).then(optionsLiteral("config")).then(optionsLiteral("options")))));
+ }
+
+ public static void save() {
+ INSTANCE.save();
+ }
+
+ public static Screen createGUI(Screen parent) {
+ return YetAnotherConfigLib.create(INSTANCE, (defaults, config, builder) -> {
+ return builder
+ .title(Text.literal("Skyblocker"))
+ .category(GeneralCategory.create(defaults, config))
+ .category(DungeonsCategory.create(defaults, config))
+ .category(DwarvenMinesCategory.create(defaults, config))
+ .category(LocationsCategory.create(defaults, config))
+ .category(SlayersCategory.create(defaults, config))
+ .category(QuickNavigationCategory.create(defaults, config))
+ .category(MessageFilterCategory.create(defaults, config))
+ .category(DiscordRPCCategory.create(defaults, config));
+
+ }).generateScreen(parent);
+ }
+
+ /**
+ * Registers an options command with the given name. Used for registering both options and config as valid commands.
+ *
+ * @param name the name of the command node
+ * @return the command builder
+ */
+ private static LiteralArgumentBuilder<FabricClientCommandSource> optionsLiteral(String name) {
+ // Don't immediately open the next screen as it will be closed by ChatScreen right after this command is executed
+ return ClientCommandManager.literal(name).executes(Scheduler.queueOpenScreenCommand(() -> createGUI(null)));
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DiscordRPCCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DiscordRPCCategory.java
index 9f7d066b..4357c29c 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DiscordRPCCategory.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DiscordRPCCategory.java
@@ -5,13 +5,13 @@ import dev.isxander.yacl3.api.Option;
import dev.isxander.yacl3.api.OptionDescription;
import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import dev.isxander.yacl3.api.controller.StringControllerBuilder;
-import me.xmrvizzy.skyblocker.config.ConfigModel;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.config.ConfigUtils;
import net.minecraft.text.Text;
public class DiscordRPCCategory {
- public static ConfigCategory create(ConfigModel defaults, ConfigModel config) {
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
return ConfigCategory.createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.category.richPresence"))
@@ -23,7 +23,7 @@ public class DiscordRPCCategory {
newValue -> config.richPresence.enableRichPresence = newValue)
.controller(BooleanControllerBuilder::create)
.build())
- .option(Option.<ConfigModel.Info>createBuilder()
+ .option(Option.<SkyblockerConfig.Info>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.richPresence.info"))
.description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.richPresence.info.@Tooltip")))
.binding(defaults.richPresence.info,
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DungeonsCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DungeonsCategory.java
index e26bbae6..0f6b1208 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DungeonsCategory.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DungeonsCategory.java
@@ -10,8 +10,8 @@ import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import dev.isxander.yacl3.api.controller.FloatFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.StringControllerBuilder;
-import me.xmrvizzy.skyblocker.config.ConfigModel;
-import me.xmrvizzy.skyblocker.config.ConfigModel.FormattingOption;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig.FormattingOption;
import me.xmrvizzy.skyblocker.config.ConfigUtils;
import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonMapConfigScreen;
import net.minecraft.client.MinecraftClient;
@@ -19,7 +19,7 @@ import net.minecraft.text.Text;
public class DungeonsCategory {
- public static ConfigCategory create(ConfigModel defaults, ConfigModel config) {
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
return ConfigCategory.createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.locations.dungeons"))
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DwarvenMinesCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DwarvenMinesCategory.java
index 540a04e4..c6b8b8bc 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/DwarvenMinesCategory.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/DwarvenMinesCategory.java
@@ -7,7 +7,7 @@ import dev.isxander.yacl3.api.OptionDescription;
import dev.isxander.yacl3.api.OptionGroup;
import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerFieldControllerBuilder;
-import me.xmrvizzy.skyblocker.config.ConfigModel;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.config.ConfigUtils;
import me.xmrvizzy.skyblocker.skyblock.dwarven.DwarvenHudConfigScreen;
import net.minecraft.client.MinecraftClient;
@@ -15,7 +15,7 @@ import net.minecraft.text.Text;
public class DwarvenMinesCategory {
- public static ConfigCategory create(ConfigModel defaults, ConfigModel config) {
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
return ConfigCategory.createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines"))
@@ -53,7 +53,7 @@ public class DwarvenMinesCategory {
newValue -> config.locations.dwarvenMines.dwarvenHud.enabled = newValue)
.controller(BooleanControllerBuilder::create)
.build())
- .option(Option.<ConfigModel.DwarvenHudStyle>createBuilder()
+ .option(Option.<SkyblockerConfig.DwarvenHudStyle>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style"))
.description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[0]",
Text.translatable("text.autoconfig.skyblocker.option.locations.dwarvenMines.dwarvenHud.style.@Tooltip[1]"),
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/GeneralCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/GeneralCategory.java
index 1019703c..e75dc331 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/GeneralCategory.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/GeneralCategory.java
@@ -9,7 +9,7 @@ import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import dev.isxander.yacl3.api.controller.FloatFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder;
-import me.xmrvizzy.skyblocker.config.ConfigModel;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.config.ConfigUtils;
import me.xmrvizzy.skyblocker.skyblock.shortcut.ShortcutsConfigScreen;
import me.xmrvizzy.skyblocker.utils.render.title.TitleContainerConfigScreen;
@@ -18,7 +18,7 @@ import net.minecraft.text.Text;
public class GeneralCategory {
- public static ConfigCategory create(ConfigModel defaults, ConfigModel config) {
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
return ConfigCategory.createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.category.general"))
@@ -86,7 +86,7 @@ public class GeneralCategory {
newValue -> config.general.tabHud.plainPlayerNames = newValue)
.controller(BooleanControllerBuilder::create)
.build())
- .option(Option.<ConfigModel.NameSorting>createBuilder()
+ .option(Option.<SkyblockerConfig.NameSorting>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.general.tabHud.nameSorting"))
.description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.general.tabHud.nameSorting.@Tooltip")))
.binding(defaults.general.tabHud.nameSorting,
@@ -107,28 +107,28 @@ public class GeneralCategory {
newValue -> config.general.bars.enableBars = newValue)
.controller(BooleanControllerBuilder::create)
.build())
- .option(Option.<ConfigModel.BarPosition>createBuilder()
+ .option(Option.<SkyblockerConfig.BarPosition>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.general.bars.barpositions.healthBarPosition"))
.binding(defaults.general.bars.barpositions.healthBarPosition,
() -> config.general.bars.barpositions.healthBarPosition,
newValue -> config.general.bars.barpositions.healthBarPosition = newValue)
.controller(ConfigUtils::createCyclingListController4Enum)
.build())
- .option(Option.<ConfigModel.BarPosition>createBuilder()
+ .option(Option.<SkyblockerConfig.BarPosition>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.general.bars.barpositions.manaBarPosition"))
.binding(defaults.general.bars.barpositions.manaBarPosition,
() -> config.general.bars.barpositions.manaBarPosition,
newValue -> config.general.bars.barpositions.manaBarPosition = newValue)
.controller(ConfigUtils::createCyclingListController4Enum)
.build())
- .option(Option.<ConfigModel.BarPosition>createBuilder()
+ .option(Option.<SkyblockerConfig.BarPosition>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.general.bars.barpositions.defenceBarPosition"))
.binding(defaults.general.bars.barpositions.defenceBarPosition,
() -> config.general.bars.barpositions.defenceBarPosition,
newValue -> config.general.bars.barpositions.defenceBarPosition = newValue)
.controller(ConfigUtils::createCyclingListController4Enum)
.build())
- .option(Option.<ConfigModel.BarPosition>createBuilder()
+ .option(Option.<SkyblockerConfig.BarPosition>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.general.bars.barpositions.experienceBarPosition"))
.binding(defaults.general.bars.barpositions.experienceBarPosition,
() -> config.general.bars.barpositions.experienceBarPosition,
@@ -306,7 +306,7 @@ public class GeneralCategory {
newValue -> config.general.itemTooltip.enableAvgBIN = newValue)
.controller(BooleanControllerBuilder::create)
.build())
- .option(Option.<ConfigModel.Average>createBuilder()
+ .option(Option.<SkyblockerConfig.Average>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.general.itemTooltip.avg"))
.description(OptionDescription.of(Text.translatable("text.autoconfig.skyblocker.option.general.itemTooltip.avg.@Tooltip")))
.binding(defaults.general.itemTooltip.avg,
@@ -411,14 +411,14 @@ public class GeneralCategory {
newValue -> config.general.titleContainer.y = newValue)
.controller(IntegerFieldControllerBuilder::create)
.build())
- .option(Option.<ConfigModel.Direction>createBuilder()
+ .option(Option.<SkyblockerConfig.Direction>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.general.titleContainer.direction"))
.binding(defaults.general.titleContainer.direction,
() -> config.general.titleContainer.direction,
newValue -> config.general.titleContainer.direction = newValue)
.controller(ConfigUtils::createCyclingListController4Enum)
.build())
- .option(Option.<ConfigModel.Alignment>createBuilder()
+ .option(Option.<SkyblockerConfig.Alignment>createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.option.general.titleContainer.alignment"))
.binding(defaults.general.titleContainer.alignment,
() -> config.general.titleContainer.alignment,
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/LocationsCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/LocationsCategory.java
index 640bc5e6..8c3189ee 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/LocationsCategory.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/LocationsCategory.java
@@ -6,12 +6,12 @@ import dev.isxander.yacl3.api.OptionDescription;
import dev.isxander.yacl3.api.OptionGroup;
import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder;
-import me.xmrvizzy.skyblocker.config.ConfigModel;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.minecraft.text.Text;
public class LocationsCategory {
- public static ConfigCategory create(ConfigModel defaults, ConfigModel config) {
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
return ConfigCategory.createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.category.locations"))
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/MessageFilterCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/MessageFilterCategory.java
index d73a38ba..5fc5a808 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/MessageFilterCategory.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/MessageFilterCategory.java
@@ -5,13 +5,13 @@ import dev.isxander.yacl3.api.Option;
import dev.isxander.yacl3.api.OptionDescription;
import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult;
-import me.xmrvizzy.skyblocker.config.ConfigModel;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.config.ConfigUtils;
import net.minecraft.text.Text;
public class MessageFilterCategory {
- public static ConfigCategory create(ConfigModel defaults, ConfigModel config) {
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
return ConfigCategory.createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.category.messages"))
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/QuickNavigationCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/QuickNavigationCategory.java
index 831efa07..4ca38375 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/QuickNavigationCategory.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/QuickNavigationCategory.java
@@ -6,12 +6,12 @@ import dev.isxander.yacl3.api.OptionGroup;
import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.StringControllerBuilder;
-import me.xmrvizzy.skyblocker.config.ConfigModel;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.minecraft.text.Text;
public class QuickNavigationCategory {
- public static ConfigCategory create(ConfigModel defaults, ConfigModel config) {
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
return ConfigCategory.createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.category.quickNav"))
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/categories/SlayersCategory.java b/src/main/java/me/xmrvizzy/skyblocker/config/categories/SlayersCategory.java
index f7f1886b..bfb3c6ad 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/categories/SlayersCategory.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/categories/SlayersCategory.java
@@ -8,12 +8,12 @@ import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import dev.isxander.yacl3.api.controller.FloatFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerFieldControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder;
-import me.xmrvizzy.skyblocker.config.ConfigModel;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.minecraft.text.Text;
public class SlayersCategory {
- public static ConfigCategory create(ConfigModel defaults, ConfigModel config) {
+ public static ConfigCategory create(SkyblockerConfig defaults, SkyblockerConfig config) {
return ConfigCategory.createBuilder()
.name(Text.translatable("text.autoconfig.skyblocker.category.slayer"))