diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-09-30 23:33:09 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-30 23:33:09 -0400 |
| commit | 555161a6568d918f158ceecffe812b45960ec93a (patch) | |
| tree | caf0e8dc7e09532697ec82becd10400834593858 | |
| parent | dbdb0598086a4d31018294f87026da517ceb0ce2 (diff) | |
| parent | be8e307391d95e0bdc981411f94626978a88b0a5 (diff) | |
| download | Skyblocker-555161a6568d918f158ceecffe812b45960ec93a.tar.gz Skyblocker-555161a6568d918f158ceecffe812b45960ec93a.tar.bz2 Skyblocker-555161a6568d918f158ceecffe812b45960ec93a.zip | |
Merge pull request #328 from AzureAaron/yacl3
YACL Config
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; |
