diff --git a/build.gradle.kts b/build.gradle.kts index 0192032..ffda24b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,6 +3,7 @@ import com.modrinth.minotaur.ModrinthExtension import com.modrinth.minotaur.dependencies.DependencyType import masecla.modrinth4j.model.version.ProjectVersion.VersionType import net.fabricmc.loom.LoomGradleExtension +import net.fabricmc.loom.api.LoomGradleExtensionAPI buildscript { dependencies { @@ -26,7 +27,7 @@ plugins { group = "fr.username404" version = "0.3.5" -val groupAndName = "${rootProject.group}.${rootProject.name.toLowerCase()}" +val groupAndName = "${rootProject.group}.${rootProject.name.lowercase()}" val javaVer: String = "21" val sourceJavaVer: String = javaVer @@ -50,6 +51,9 @@ subprojects { apply(plugin = "dev.architectury.loom") apply(plugin = "org.jetbrains.kotlin.plugin.serialization") extensions.configure("loom") { + if (this@subprojects.project.name != "common") { + accessWidenerPath.set(project(":common").extensions.getByType().accessWidenerPath) + } mappingsDep = layered { silentMojangMappingsLicense() officialMojangMappings().parchment("org.parchmentmc.data:parchment-1.21:2024.06.23") @@ -114,7 +118,7 @@ subprojects { val dictionariesDir = "$rootDir/obfuscation" dependsOn(shadowJar) injars(shadowJar) - outjars("$buildDir/shrinkedJar/${shadowJar.outputs.files.singleFile.name}") + outjars("${rootProject.layout.buildDirectory}/shrinkedJar/${shadowJar.outputs.files.singleFile.name}") keep("class $group.snowygui.mixins.* { * ; }") keep("class $group.snowygui.fabric.FabricInit") keep("class $group.snowygui.fabric.ModMenuConf") diff --git a/common/build.gradle.kts b/common/build.gradle.kts index a37b0df..43f65fd 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -6,4 +6,8 @@ dependencies { } } +loom { + accessWidenerPath = file("src/main/resources/${rootProject.name.lowercase()}.accessWidener") +} + tasks.getByName("shrinkJar").enabled = false diff --git a/common/src/main/java/fr/username404/snowygui/mixins/OptionValueAccessor.java b/common/src/main/java/fr/username404/snowygui/mixins/OptionValueAccessor.java deleted file mode 100644 index 5147bbc..0000000 --- a/common/src/main/java/fr/username404/snowygui/mixins/OptionValueAccessor.java +++ /dev/null @@ -1,11 +0,0 @@ -package fr.username404.snowygui.mixins; - -import net.minecraft.client.OptionInstance; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(OptionInstance.class) -public interface OptionValueAccessor { - @Accessor("value") - void setValue(Object value); -} diff --git a/common/src/main/kotlin/fr/username404/snowygui/gui/feature/GammaBoost.kt b/common/src/main/kotlin/fr/username404/snowygui/gui/feature/GammaBoost.kt index adb07c9..7956a20 100644 --- a/common/src/main/kotlin/fr/username404/snowygui/gui/feature/GammaBoost.kt +++ b/common/src/main/kotlin/fr/username404/snowygui/gui/feature/GammaBoost.kt @@ -1,6 +1,5 @@ package fr.username404.snowygui.gui.feature -import fr.username404.snowygui.mixins.OptionValueAccessor import net.minecraft.client.Minecraft @ButtonInfo(Category.MISC) @@ -10,11 +9,11 @@ object GammaBoost: ButtonImpl() { override fun execAction() { with(Minecraft.getInstance().options) { val gamma = gamma().get() - @Suppress("KotlinConstantConditions") - (gamma() as OptionValueAccessor).setValue(if (toggled) { - if (gamma < boost) oldGamma = gamma - boost - } else oldGamma) + gamma().value = + if (toggled) { + if (gamma < boost) oldGamma = gamma + boost + } else oldGamma } } } \ No newline at end of file diff --git a/common/src/main/resources/snowygui-common.mixins.json b/common/src/main/resources/snowygui-common.mixins.json index ef1a5a9..315916e 100644 --- a/common/src/main/resources/snowygui-common.mixins.json +++ b/common/src/main/resources/snowygui-common.mixins.json @@ -2,9 +2,7 @@ "required": true, "package": "fr.username404.snowygui.mixins", "compatibilityLevel": "JAVA_18", - "client": [ - "OptionValueAccessor" - ], + "client": [], "injectors": { "defaultRequire": 1 }, diff --git a/common/src/main/resources/snowygui.accessWidener b/common/src/main/resources/snowygui.accessWidener new file mode 100644 index 0000000..e93b5f5 --- /dev/null +++ b/common/src/main/resources/snowygui.accessWidener @@ -0,0 +1,3 @@ +accessWidener v2 named +accessible field net/minecraft/client/OptionInstance value Ljava/lang/Object; +mutable field net/minecraft/client/OptionInstance value Ljava/lang/Object; \ No newline at end of file diff --git a/common/src/main/resources/snowygui.common.json b/common/src/main/resources/snowygui.common.json new file mode 100644 index 0000000..09dc545 --- /dev/null +++ b/common/src/main/resources/snowygui.common.json @@ -0,0 +1,3 @@ +{ + "accessWidener": "snowygui.accessWidener" +} \ No newline at end of file diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index b5747c8..db8f041 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -32,6 +32,7 @@ "snowygui-common.mixins.json", "snowygui-fabric.mixins.json" ], + "accessWidener": "snowygui.accessWidener", "depends": { "fabricloader": ">=${fabric_loader}", "fabric-language-kotlin": ">=${fabric_kotlin}",