diff options
Diffstat (limited to 'src')
4 files changed, 203 insertions, 233 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/ConfigSerializer.java b/src/main/java/me/xmrvizzy/skyblocker/config/ConfigSerializer.java deleted file mode 100644 index 2d63fc76..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/config/ConfigSerializer.java +++ /dev/null @@ -1,29 +0,0 @@ -package me.xmrvizzy.skyblocker.config; - -import java.awt.Color; - -import com.google.gson.FieldNamingPolicy; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; - -import dev.isxander.yacl3.config.v2.impl.serializer.GsonConfigSerializer; -import net.minecraft.item.Item; -import net.minecraft.text.Style; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; - -/** - * Note: The type hierarchy adapters are copied from YACL's code - */ -class ConfigSerializer { - static final Gson INSTANCE = new GsonBuilder() - .setFieldNamingPolicy(FieldNamingPolicy.IDENTITY) - .registerTypeHierarchyAdapter(Text.class, new Text.Serializer()) - .registerTypeHierarchyAdapter(Style.class, new Style.Serializer()) - .registerTypeHierarchyAdapter(Identifier.class, new Identifier.Serializer()) - .registerTypeHierarchyAdapter(Color.class, new GsonConfigSerializer.ColorTypeAdapter()) - .registerTypeHierarchyAdapter(Item.class, new GsonConfigSerializer.ItemTypeAdapter()) - .serializeNulls() - .setPrettyPrinting() - .create(); -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index ce268978..4b707e9a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -5,65 +5,64 @@ import java.util.List; import org.apache.commons.lang3.StringUtils; -import dev.isxander.yacl3.config.ConfigEntry; +import dev.isxander.yacl3.config.v2.api.SerialEntry; 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 me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult; import net.minecraft.client.resource.language.I18n; import net.minecraft.text.Text; import net.minecraft.util.Formatting; -@SuppressWarnings("deprecation") public class SkyblockerConfig { - @ConfigEntry + @SerialEntry public int version = 1; - @ConfigEntry + @SerialEntry public General general = new General(); - @ConfigEntry + @SerialEntry public Locations locations = new Locations(); - @ConfigEntry + @SerialEntry public Slayer slayer = new Slayer(); - @ConfigEntry + @SerialEntry public QuickNav quickNav = new QuickNav(); - @ConfigEntry + @SerialEntry public Messages messages = new Messages(); - @ConfigEntry + @SerialEntry public RichPresence richPresence = new RichPresence(); public static class QuickNav { - @ConfigEntry + @SerialEntry public boolean enableQuickNav = true; - @ConfigEntry + @SerialEntry public QuickNavItem button1 = new QuickNavItem(true, new ItemData("diamond_sword"), "Your Skills", "/skills"); - @ConfigEntry + @SerialEntry 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 + @SerialEntry 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 + @SerialEntry public QuickNavItem button4 = new QuickNavItem(true, new ItemData("leather_chestplate", 1, "tag:{display:{color:8991416}}"), "Wardrobe \\([12]/2\\)", "/wardrobe"); - @ConfigEntry + @SerialEntry 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"); @@ -73,33 +72,33 @@ public class SkyblockerConfig { * "Storage" : simple match on letters * "(?: \\([12]\\/2\\))?" : optional match on the non-capturing group " (1/2)" or " (2/2)" */ - @ConfigEntry + @SerialEntry public QuickNavItem button6 = new QuickNavItem(true, new ItemData("ender_chest"), "(?:Rift )?Storage(?: \\(1/2\\))?", "/storage"); - @ConfigEntry + @SerialEntry 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 + @SerialEntry 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 + @SerialEntry 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 + @SerialEntry public QuickNavItem button10 = new QuickNavItem(true, new ItemData("enchanting_table"), "Enchant Item", "/etable"); - @ConfigEntry + @SerialEntry public QuickNavItem button11 = new QuickNavItem(true, new ItemData("anvil"), "Anvil", "/anvil"); - @ConfigEntry + @SerialEntry public QuickNavItem button12 = new QuickNavItem(true, new ItemData("crafting_table"), "Craft Item", "/craft"); } @@ -111,16 +110,16 @@ public class SkyblockerConfig { this.uiTitle = uiTitle; } - @ConfigEntry + @SerialEntry public Boolean render; - @ConfigEntry + @SerialEntry public ItemData item; - @ConfigEntry + @SerialEntry public String uiTitle; - @ConfigEntry + @SerialEntry public String clickEvent; } @@ -137,98 +136,98 @@ public class SkyblockerConfig { this.nbt = ""; } - @ConfigEntry + @SerialEntry public String itemName; - @ConfigEntry + @SerialEntry public int count; - @ConfigEntry + @SerialEntry public String nbt; } public static class General { - @ConfigEntry + @SerialEntry public boolean acceptReparty = true; - @ConfigEntry + @SerialEntry public boolean backpackPreviewWithoutShift = false; - @ConfigEntry + @SerialEntry public boolean compactorDeletorPreview = true; - @ConfigEntry + @SerialEntry public boolean hideEmptyTooltips = true; - @ConfigEntry + @SerialEntry public boolean hideStatusEffectOverlay = false; - @ConfigEntry + @SerialEntry public TabHudConf tabHud = new TabHudConf(); - @ConfigEntry + @SerialEntry public Bars bars = new Bars(); - @ConfigEntry + @SerialEntry public Experiments experiments = new Experiments(); - @ConfigEntry + @SerialEntry public Fishing fishing = new Fishing(); - @ConfigEntry + @SerialEntry public FairySouls fairySouls = new FairySouls(); - @ConfigEntry + @SerialEntry public Shortcuts shortcuts = new Shortcuts(); - @ConfigEntry + @SerialEntry public QuiverWarning quiverWarning = new QuiverWarning(); - @ConfigEntry + @SerialEntry public ItemList itemList = new ItemList(); - @ConfigEntry + @SerialEntry public ItemTooltip itemTooltip = new ItemTooltip(); - @ConfigEntry + @SerialEntry public ItemInfoDisplay itemInfoDisplay = new ItemInfoDisplay(); - @ConfigEntry + @SerialEntry public SpecialEffects specialEffects = new SpecialEffects(); - @ConfigEntry + @SerialEntry public Hitbox hitbox = new Hitbox(); - @ConfigEntry + @SerialEntry public TitleContainer titleContainer = new TitleContainer(); - @ConfigEntry + @SerialEntry public TeleportOverlay teleportOverlay = new TeleportOverlay(); - @ConfigEntry + @SerialEntry public List<Integer> lockedSlots = new ArrayList<>(); - @ConfigEntry + @SerialEntry public Object2ObjectOpenHashMap<String, Text> customItemNames = new Object2ObjectOpenHashMap<>(); - @ConfigEntry + @SerialEntry public Object2IntOpenHashMap<String> customDyeColors = new Object2IntOpenHashMap<>(); - @ConfigEntry + @SerialEntry public Object2ObjectOpenHashMap<String, CustomArmorTrims.ArmorTrimId> customArmorTrims = new Object2ObjectOpenHashMap<>(); } public static class TabHudConf { - @ConfigEntry + @SerialEntry public boolean tabHudEnabled = true; - @ConfigEntry + @SerialEntry public int tabHudScale = 100; - @ConfigEntry + @SerialEntry public boolean plainPlayerNames = false; - @ConfigEntry + @SerialEntry public NameSorting nameSorting = NameSorting.DEFAULT; } @@ -245,24 +244,24 @@ public class SkyblockerConfig { } public static class Bars { - @ConfigEntry + @SerialEntry public boolean enableBars = true; - @ConfigEntry + @SerialEntry public BarPositions barPositions = new BarPositions(); } public static class BarPositions { - @ConfigEntry + @SerialEntry public BarPosition healthBarPosition = BarPosition.LAYER1; - @ConfigEntry + @SerialEntry public BarPosition manaBarPosition = BarPosition.LAYER1; - @ConfigEntry + @SerialEntry public BarPosition defenceBarPosition = BarPosition.LAYER1; - @ConfigEntry + @SerialEntry public BarPosition experienceBarPosition = BarPosition.LAYER1; } @@ -286,96 +285,96 @@ public class SkyblockerConfig { } public static class Experiments { - @ConfigEntry + @SerialEntry public boolean enableChronomatronSolver = true; - @ConfigEntry + @SerialEntry public boolean enableSuperpairsSolver = true; - @ConfigEntry + @SerialEntry public boolean enableUltrasequencerSolver = true; } public static class Fishing { - @ConfigEntry + @SerialEntry public boolean enableFishingHelper = true; } public static class FairySouls { - @ConfigEntry + @SerialEntry public boolean enableFairySoulsHelper = false; - @ConfigEntry + @SerialEntry public boolean highlightFoundSouls = true; - @ConfigEntry + @SerialEntry public boolean highlightOnlyNearbySouls = false; } public static class Shortcuts { - @ConfigEntry + @SerialEntry public boolean enableShortcuts = true; - @ConfigEntry + @SerialEntry public boolean enableCommandShortcuts = true; - @ConfigEntry + @SerialEntry public boolean enableCommandArgShortcuts = true; } public static class QuiverWarning { - @ConfigEntry + @SerialEntry public boolean enableQuiverWarning = true; - @ConfigEntry + @SerialEntry public boolean enableQuiverWarningInDungeons = true; - @ConfigEntry + @SerialEntry public boolean enableQuiverWarningAfterDungeon = true; } public static class Hitbox { - @ConfigEntry + @SerialEntry public boolean oldFarmlandHitbox = true; - @ConfigEntry + @SerialEntry public boolean oldLeverHitbox = false; } public static class TitleContainer { - @ConfigEntry + @SerialEntry public float titleContainerScale = 100; - @ConfigEntry + @SerialEntry public int x = 540; - @ConfigEntry + @SerialEntry public int y = 10; - @ConfigEntry + @SerialEntry public Direction direction = Direction.HORIZONTAL; - @ConfigEntry + @SerialEntry public Alignment alignment = Alignment.MIDDLE; } public static class TeleportOverlay { - @ConfigEntry + @SerialEntry public boolean enableTeleportOverlays = true; - @ConfigEntry + @SerialEntry public boolean enableWeirdTransmission = true; - @ConfigEntry + @SerialEntry public boolean enableInstantTransmission = true; - @ConfigEntry + @SerialEntry public boolean enableEtherTransmission = true; - @ConfigEntry + @SerialEntry public boolean enableSinrecallTransmission = true; - @ConfigEntry + @SerialEntry public boolean enableWitherImpact = true; } @@ -405,21 +404,21 @@ public class SkyblockerConfig { } public static class RichPresence { - @ConfigEntry + @SerialEntry public boolean enableRichPresence = false; - @ConfigEntry + @SerialEntry public Info info = Info.LOCATION; - @ConfigEntry + @SerialEntry public boolean cycleMode = false; - @ConfigEntry + @SerialEntry public String customMessage = "Playing Skyblock"; } public static class ItemList { - @ConfigEntry + @SerialEntry public boolean enableItemList = true; } @@ -433,160 +432,160 @@ public class SkyblockerConfig { } public static class ItemTooltip { - @ConfigEntry + @SerialEntry public boolean enableNPCPrice = true; - @ConfigEntry + @SerialEntry public boolean enableMotesPrice = true; - @ConfigEntry + @SerialEntry public boolean enableAvgBIN = true; - @ConfigEntry + @SerialEntry public Average avg = Average.THREE_DAY; - @ConfigEntry + @SerialEntry public boolean enableLowestBIN = true; - @ConfigEntry + @SerialEntry public boolean enableBazaarPrice = true; - @ConfigEntry + @SerialEntry public boolean enableMuseumDate = true; } public static class ItemInfoDisplay { - @ConfigEntry + @SerialEntry public boolean attributeShardInfo = true; } public static class SpecialEffects { - @ConfigEntry + @SerialEntry public boolean rareDungeonDropEffects = true; } public static class Locations { - @ConfigEntry + @SerialEntry public Barn barn = new Barn(); - @ConfigEntry + @SerialEntry public Dungeons dungeons = new Dungeons(); - @ConfigEntry + @SerialEntry public DwarvenMines dwarvenMines = new DwarvenMines(); - @ConfigEntry + @SerialEntry public Rift rift = new Rift(); - @ConfigEntry + @SerialEntry public SpidersDen spidersDen = new SpidersDen(); } public static class Dungeons { - @ConfigEntry + @SerialEntry public SecretWaypoints secretWaypoints = new SecretWaypoints(); - @ConfigEntry + @SerialEntry public DungeonChestProfit dungeonChestProfit = new DungeonChestProfit(); - @ConfigEntry + @SerialEntry public boolean croesusHelper = true; - @ConfigEntry + @SerialEntry public boolean enableMap = true; - @ConfigEntry + @SerialEntry public float mapScaling = 1f; - @ConfigEntry + @SerialEntry public int mapX = 2; - @ConfigEntry + @SerialEntry public int mapY = 2; - @ConfigEntry + @SerialEntry public boolean starredMobGlow = true; - @ConfigEntry + @SerialEntry public boolean solveThreeWeirdos = true; - @ConfigEntry + @SerialEntry public boolean blazesolver = true; - @ConfigEntry + @SerialEntry public boolean solveTrivia = true; - @ConfigEntry + @SerialEntry public boolean solveTicTacToe = true; - @ConfigEntry + @SerialEntry public LividColor lividColor = new LividColor(); - @ConfigEntry + @SerialEntry public Terminals terminals = new Terminals(); } public static class SecretWaypoints { - @ConfigEntry + @SerialEntry public boolean enableSecretWaypoints = true; - @ConfigEntry + @SerialEntry public boolean noInitSecretWaypoints = false; - @ConfigEntry + @SerialEntry public boolean enableEntranceWaypoints = true; - @ConfigEntry + @SerialEntry public boolean enableSuperboomWaypoints = true; - @ConfigEntry + @SerialEntry public boolean enableChestWaypoints = true; - @ConfigEntry + @SerialEntry public boolean enableItemWaypoints = true; - @ConfigEntry + @SerialEntry public boolean enableBatWaypoints = true; - @ConfigEntry + @SerialEntry public boolean enableWitherWaypoints = true; - @ConfigEntry + @SerialEntry public boolean enableLeverWaypoints = true; - @ConfigEntry + @SerialEntry public boolean enableFairySoulWaypoints = true; - @ConfigEntry + @SerialEntry public boolean enableStonkWaypoints = true; - @ConfigEntry + @SerialEntry public boolean enableDefaultWaypoints = true; } public static class DungeonChestProfit { - @ConfigEntry + @SerialEntry public boolean enableProfitCalculator = true; - @ConfigEntry + @SerialEntry public boolean includeKismet = false; - @ConfigEntry + @SerialEntry public boolean includeEssence = true; - @ConfigEntry + @SerialEntry public int neutralThreshold = 1000; - @ConfigEntry + @SerialEntry public FormattingOption neutralColor = FormattingOption.DARK_GRAY; - @ConfigEntry + @SerialEntry public FormattingOption profitColor = FormattingOption.DARK_GREEN; - @ConfigEntry + @SerialEntry public FormattingOption lossColor = FormattingOption.RED; - @ConfigEntry + @SerialEntry public FormattingOption incompleteColor = FormattingOption.BLUE; } @@ -629,52 +628,52 @@ public class SkyblockerConfig { } public static class LividColor { - @ConfigEntry + @SerialEntry public boolean enableLividColor = true; - @ConfigEntry + @SerialEntry public String lividColorText = "The livid color is [color]"; } public static class Terminals { - @ConfigEntry + @SerialEntry public boolean solveColor = true; - @ConfigEntry + @SerialEntry public boolean solveOrder = true; - @ConfigEntry + @SerialEntry public boolean solveStartsWith = true; } public static class DwarvenMines { - @ConfigEntry + @SerialEntry public boolean enableDrillFuel = true; - @ConfigEntry + @SerialEntry public boolean solveFetchur = true; - @ConfigEntry + @SerialEntry public boolean solvePuzzler = true; - @ConfigEntry + @SerialEntry public DwarvenHud dwarvenHud = new DwarvenHud(); } public static class DwarvenHud { - @ConfigEntry + @SerialEntry public boolean enabled = true; - @ConfigEntry + @SerialEntry public DwarvenHudStyle style = DwarvenHudStyle.SIMPLE; - @ConfigEntry + @SerialEntry public boolean enableBackground = true; - @ConfigEntry + @SerialEntry public int x = 10; - @ConfigEntry + @SerialEntry public int y = 10; } @@ -692,109 +691,109 @@ public class SkyblockerConfig { } public static class Barn { - @ConfigEntry + @SerialEntry public boolean solveHungryHiker = true; - @ConfigEntry + @SerialEntry public boolean solveTreasureHunter = true; } public static class Rift { - @ConfigEntry + @SerialEntry public boolean mirrorverseWaypoints = true; - @ConfigEntry + @SerialEntry public int mcGrubberStacks = 0; } public static class SpidersDen { - @ConfigEntry + @SerialEntry public Relics relics = new Relics(); } public static class Relics { - @ConfigEntry + @SerialEntry public boolean enableRelicsHelper = false; - @ConfigEntry + @SerialEntry public boolean highlightFoundRelics = true; } public static class Slayer { - @ConfigEntry + @SerialEntry public VampireSlayer vampireSlayer = new VampireSlayer(); } public static class VampireSlayer { - @ConfigEntry + @SerialEntry public boolean enableEffigyWaypoints = true; - @ConfigEntry + @SerialEntry public boolean compactEffigyWaypoints; - @ConfigEntry + @SerialEntry public int effigyUpdateFrequency = 5; - @ConfigEntry + @SerialEntry public boolean enableHolyIceIndicator = true; - @ConfigEntry + @SerialEntry public int holyIceIndicatorTickDelay = 10; - @ConfigEntry + @SerialEntry public int holyIceUpdateFrequency = 5; - @ConfigEntry + @SerialEntry public boolean enableHealingMelonIndicator = true; - @ConfigEntry + @SerialEntry public float healingMelonHealthThreshold = 4f; - @ConfigEntry + @SerialEntry public boolean enableSteakStakeIndicator = true; - @ConfigEntry + @SerialEntry public int steakStakeUpdateFrequency = 5; - @ConfigEntry + @SerialEntry public boolean enableManiaIndicator = true; - @ConfigEntry + @SerialEntry public int maniaUpdateFrequency = 5; } public static class Messages { - @ConfigEntry + @SerialEntry public ChatFilterResult hideAbility = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public ChatFilterResult hideHeal = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public ChatFilterResult hideAOTE = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public ChatFilterResult hideImplosion = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public ChatFilterResult hideMoltenWave = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public ChatFilterResult hideAds = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public ChatFilterResult hideTeleportPad = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public ChatFilterResult hideCombo = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public ChatFilterResult hideAutopet = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public ChatFilterResult hideShowOff = ChatFilterResult.PASS; - @ConfigEntry + @SerialEntry public boolean hideMana = false; } diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfigManager.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfigManager.java index fdc323b5..eb756641 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfigManager.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfigManager.java @@ -2,17 +2,20 @@ package me.xmrvizzy.skyblocker.config; import java.lang.StackWalker.Option; import java.nio.file.Path; + +import com.google.gson.FieldNamingPolicy; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import dev.isxander.yacl3.api.YetAnotherConfigLib; -import dev.isxander.yacl3.config.GsonConfigInstance; +import dev.isxander.yacl3.config.v2.api.ConfigClassHandler; +import dev.isxander.yacl3.config.v2.api.serializer.GsonConfigSerializerBuilder; 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.MessageFilterCategory; import me.xmrvizzy.skyblocker.config.categories.QuickNavigationCategory; import me.xmrvizzy.skyblocker.config.categories.SlayersCategory; import me.xmrvizzy.skyblocker.utils.scheduler.Scheduler; @@ -22,24 +25,22 @@ 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; +import net.minecraft.util.Identifier; -@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) + private static final ConfigClassHandler<SkyblockerConfig> HANDLER = ConfigClassHandler.createBuilder(SkyblockerConfig.class) .serializer(config -> GsonConfigSerializerBuilder.create(config) .setPath(PATH) .setJson5(false) - .overrideGsonBuilder(ConfigSerializer.INSTANCE) + .appendGsonBuilder(builder -> builder + .setFieldNamingPolicy(FieldNamingPolicy.IDENTITY) + .registerTypeHierarchyAdapter(Identifier.class, new Identifier.Serializer())) .build()) - .build();*/ + .build(); public static SkyblockerConfig get() { - return INSTANCE.getConfig(); + return HANDLER.instance(); } /** @@ -51,16 +52,16 @@ public class SkyblockerConfigManager { throw new RuntimeException("Skyblocker: Called config init from an illegal place!"); } - INSTANCE.load(); + HANDLER.load(); ClientCommandRegistrationCallback.EVENT.register(((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal(SkyblockerMod.NAMESPACE).then(optionsLiteral("config")).then(optionsLiteral("options"))))); } public static void save() { - INSTANCE.save(); + HANDLER.save(); } public static Screen createGUI(Screen parent) { - return YetAnotherConfigLib.create(INSTANCE, (defaults, config, builder) -> builder + return YetAnotherConfigLib.create(HANDLER, (defaults, config, builder) -> builder .title(Text.translatable("text.autoconfig.skyblocker.title")) .category(GeneralCategory.create(defaults, config)) .category(DungeonsCategory.create(defaults, config)) diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomArmorTrims.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomArmorTrims.java index c7de9320..dba066a5 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomArmorTrims.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/CustomArmorTrims.java @@ -4,7 +4,7 @@ import com.mojang.brigadier.Command; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.suggestion.SuggestionProvider; -import dev.isxander.yacl3.config.ConfigEntry; +import dev.isxander.yacl3.config.v2.api.SerialEntry; import it.unimi.dsi.fastutil.Pair; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import me.xmrvizzy.skyblocker.config.SkyblockerConfigManager; @@ -140,8 +140,7 @@ public class CustomArmorTrims { return Command.SINGLE_SUCCESS; } - @SuppressWarnings("deprecation") - public record ArmorTrimId(@ConfigEntry Identifier material, @ConfigEntry Identifier pattern) implements Pair<Identifier, Identifier> { + public record ArmorTrimId(@SerialEntry Identifier material, @SerialEntry Identifier pattern) implements Pair<Identifier, Identifier> { @Override public Identifier left() { return material(); |