diff options
92 files changed, 3053 insertions, 994 deletions
diff --git a/build.gradle b/build.gradle index 5f0d1822..d26c0e92 100644 --- a/build.gradle +++ b/build.gradle @@ -20,6 +20,7 @@ repositories { } maven { url "https://maven.terraformersmc.com/releases" } maven { url "https://maven.shedaniel.me/" } + maven { url "https://maven.isxander.dev/releases" } maven { url 'https://repo.maven.apache.org/maven2' name 'Maven Central' @@ -30,7 +31,9 @@ repositories { } maven { url "https://repo.codemc.io/repository/maven-public/" } // For Occlusion Culling library maven { url "https://repo.nea.moe/releases" } // For neu repoparser - maven { url "https://jitpack.io" } + maven { url "https://oss.sonatype.org/content/repositories/snapshots" } //For YACL + maven { url "https://maven.quiltmc.org/repository/release" } //For YACL + maven {url "https://jitpack.io"} } dependencies { @@ -44,11 +47,8 @@ dependencies { // Fabric API modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}" - // Cloth config - include modImplementation("me.shedaniel.cloth:cloth-config-fabric:${project.clothconfig_version}") { - exclude group: "net.fabricmc.fabric-api" - exclude module: "modmenu" - } + // YACL + include modImplementation("dev.isxander.yacl:yet-another-config-lib-fabric:${project.yacl_version}") // Mod Menu modImplementation "com.terraformersmc:modmenu:${project.mod_menu_version}" @@ -59,7 +59,7 @@ dependencies { // EMI modCompileOnly "dev.emi:emi-fabric:${project.emi_version}:api" - modLocalRuntime "dev.emi:emi-fabric:${project.emi_version}" +// modLocalRuntime "dev.emi:emi-fabric:${project.emi_version}" TODO uncomment when EMI is updated // Renderer (https://github.com/0x3C50/Renderer) include modImplementation("com.github.0x3C50:Renderer:${project.renderer_version}") { diff --git a/gradle.properties b/gradle.properties index d7913486..44dbbc41 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,19 +11,20 @@ loader_version=0.14.22 ## 1.20 fabric_api_version=0.89.1+1.20.2 -## Cloth Api (https://modrinth.com/mod/cloth-config/versions) -clothconfig_version=12.0.108 +# Dependencies +## YACL (https://github.com/isXander/YetAnotherConfigLib) +yacl_version=3.2.1+1.20.2 ## Mod Menu (https://modrinth.com/mod/modmenu/versions) -mod_menu_version=8.0.0-beta.2 +mod_menu_version = 8.0.0 ## REI (https://modrinth.com/mod/rei/versions?l=fabric) -rei_version=12.0.625 +rei_version = 13.0.661 ## EMI (https://modrinth.com/mod/emi/versions) emi_version = 1.0.19+1.20.1 ## Renderer (https://github.com/0x3C50/Renderer) renderer_version = master-SNAPSHOT ## Mixin Extras (https://github.com/LlamaLad7/MixinExtras) -mixin_extras_version=0.2.0-beta.9 +mixin_extras_version = 0.2.0-rc.5 ## Better Inject (https://github.com/caoimhebyrne/BetterInject) betterinject_version=0.1.3 ## Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling) diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java index b28ad3d4..1c2e112e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java +++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java @@ -2,7 +2,7 @@ package me.xmrvizzy.skyblocker; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.config.SkyblockerConfigManager; import me.xmrvizzy.skyblocker.skyblock.*; import me.xmrvizzy.skyblocker.skyblock.dungeon.*; import me.xmrvizzy.skyblocker.skyblock.dungeon.secrets.DungeonSecrets; @@ -69,7 +69,7 @@ public class SkyblockerMod implements ClientModInitializer { ClientTickEvents.END_CLIENT_TICK.register(this::tick); Utils.init(); HotbarSlotLock.init(); - SkyblockerConfig.init(); + SkyblockerConfigManager.init(); PriceInfoTooltip.init(); WikiLookup.init(); ItemRegistry.init(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/compatibility/modmenu/ModMenuEntry.java b/src/main/java/me/xmrvizzy/skyblocker/compatibility/modmenu/ModMenuEntry.java index 0cba3d5e..5a3f4504 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/compatibility/modmenu/ModMenuEntry.java +++ b/src/main/java/me/xmrvizzy/skyblocker/compatibility/modmenu/ModMenuEntry.java @@ -1,9 +1,8 @@ package me.xmrvizzy.skyblocker.compatibility.modmenu; -import me.shedaniel.autoconfig.AutoConfig; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; -import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.config.SkyblockerConfigManager; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -11,6 +10,6 @@ import net.fabricmc.api.Environment; public class ModMenuEntry implements ModMenuApi { @Override public ConfigScreenFactory<?> getModConfigScreenFactory() { - return screen -> AutoConfig.getConfigScreen(SkyblockerConfig.class, screen).get(); + return SkyblockerConfigManager::createGUI; } }
\ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java b/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java new file mode 100644 index 00000000..4a615ecc --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/config/ConfigUtils.java @@ -0,0 +1,11 @@ +package me.xmrvizzy.skyblocker.config; + +import dev.isxander.yacl3.api.Option; +import dev.isxander.yacl3.api.controller.EnumControllerBuilder; + +public class ConfigUtils { + @SuppressWarnings("unchecked") + public static <E extends Enum<E>> EnumControllerBuilder<E> createEnumCyclingListController(Option<E> opt) { + return EnumControllerBuilder.create(opt).enumClass((Class<E>) opt.binding().defaultValue().getClass()); + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index 5848ed15..4b707e9a 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -1,728 +1,808 @@ package me.xmrvizzy.skyblocker.config; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; + +import dev.isxander.yacl3.config.v2.api.SerialEntry; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import me.shedaniel.autoconfig.AutoConfig; -import me.shedaniel.autoconfig.ConfigData; -import me.shedaniel.autoconfig.annotation.Config; -import me.shedaniel.autoconfig.annotation.ConfigEntry; -import me.shedaniel.autoconfig.serializer.ConfigSerializer; -import me.shedaniel.autoconfig.serializer.GsonConfigSerializer; -import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.skyblock.item.CustomArmorTrims; import me.xmrvizzy.skyblocker.utils.chat.ChatFilterResult; -import me.xmrvizzy.skyblocker.utils.scheduler.Scheduler; -import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; -import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; import net.minecraft.client.resource.language.I18n; -import net.minecraft.text.Style; import net.minecraft.text.Text; import net.minecraft.util.Formatting; -import net.minecraft.util.Identifier; -import org.eclipse.jgit.util.StringUtils; - -import java.util.ArrayList; -import java.util.List; - -import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal; - -@Config(name = "skyblocker") -public class SkyblockerConfig implements ConfigData { - @ConfigEntry.Category("general") - @ConfigEntry.Gui.TransitiveObject - public General general = new General(); +public class SkyblockerConfig { + @SerialEntry + public int version = 1; + + @SerialEntry + public General general = new General(); - @ConfigEntry.Category("locations") - @ConfigEntry.Gui.TransitiveObject - public Locations locations = new Locations(); + @SerialEntry + public Locations locations = new Locations(); - @ConfigEntry.Category("slayer") - @ConfigEntry.Gui.TransitiveObject - public Slayer slayer = ne |
