diff --git a/build.gradle.kts b/build.gradle.kts index 3f74c74..46a0e13 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -24,8 +24,9 @@ plugins { val modId = Constants.Mod.id val mcVersion: String = libs.versions.minecraft.get() -val forgeVersion: String = libs.versions.forge.get() -val jdkVersion = 17 +val neoForgeVersion: String = libs.versions.neoforge.get() +val neoForgeLoaderVersionRange = "[${extractVersionSegments(neoForgeVersion)},)" +val jdkVersion = 21 val exportMixin = true @@ -53,8 +54,8 @@ base { group = Constants.Mod.group } -legacyForge { - version = "$mcVersion-$forgeVersion" +neoForge { + version = neoForgeVersion validateAccessTransformers = true @@ -112,11 +113,8 @@ legacyForge { } } -mixin { - add(sourceSets["main"], "${modId}.refmap.json") - - config("${modId}.mixins.json") -} +val mixinConfigName = "${modId}.mixins.json" +val mixinRefmapName = "${modId}.refmap.json" repositories { mavenCentral() @@ -159,30 +157,30 @@ repositories { dependencies { // Mandatory - modImplementation(libs.ae2) - modRuntimeOnly(libs.guideme) - modCompileOnly(libs.jei) - modCompileOnly(libs.emi) - modImplementation(libs.ae2lib) + implementation(libs.ae2) + runtimeOnly(libs.guideme) + compileOnly(libs.jei) + compileOnly(libs.emi) + implementation(libs.ae2lib) jarJar(libs.ae2lib) - modCompileOnly(libs.ae2wtlib) + compileOnly(libs.ae2wtlib) // Optional - modRuntimeOnly(libs.ae2wtlib) - modRuntimeOnly(libs.curios) // depends on ae2wtlib - modRuntimeOnly(libs.architectury) // depends on ae2wtlib - modRuntimeOnly(libs.cloth.config) // depends on ae2wtlib + runtimeOnly(libs.ae2wtlib) + runtimeOnly(libs.curios) // depends on ae2wtlib + runtimeOnly(libs.architectury) // depends on ae2wtlib + runtimeOnly(libs.cloth.config) // depends on ae2wtlib // Utility - modRuntimeOnly(libs.jei) - modRuntimeOnly(libs.emi) - modRuntimeOnly(libs.jade) + runtimeOnly(libs.jei) + runtimeOnly(libs.emi) + runtimeOnly(libs.jade) annotationProcessor(variantOf(libs.mixin, "processor")) } val modDependencies = listOf( - ModDep("forge", extractVersionSegments(forgeVersion)), + ModDep("neoforge", extractVersionSegments(neoForgeVersion)), ModDep("minecraft", mcVersion), ModDep("ae2", extractVersionSegments(libs.versions.ae2), ordering = Order.AFTER), ModDep("ae2wtlib", libs.versions.ae2wtlib.range.get(), ordering = Order.AFTER) @@ -194,7 +192,7 @@ val generateModMetadata by tasks.registering(ProcessResources::class) { "group" to project.group, "minecraft_version" to mcVersion, "mod_loader" to "javafml", - "mod_loader_version_range" to "[47,)", + "mod_loader_version_range" to neoForgeLoaderVersionRange, "mod_name" to Constants.Mod.name, "mod_author" to Constants.Mod.author, "mod_id" to modId, @@ -224,6 +222,12 @@ tasks { withType { options.encoding = "UTF-8" options.release = jdkVersion + options.compilerArgs.addAll( + listOf( + "-Aorg.spongepowered.tools.obfuscation.MixinObfuscationProcessorArguments.refmap=$mixinRefmapName", + "-Aorg.spongepowered.tools.obfuscation.MixinObfuscationProcessorArguments.mixinConfigs=$mixinConfigName" + ) + ) } java { @@ -290,7 +294,7 @@ sourceSets { } } -legacyForge.ideSyncTask(generateModMetadata) +neoForge.ideSyncTask(generateModMetadata) idea { module { @@ -303,7 +307,7 @@ idea { fun ModPublisherGradleExtension.Dependencies.fromModDependencies(modDependencies: List) { modDependencies.filter { - it.id != "minecraft" && it.id != "forge" + it.id != "minecraft" && it.id != "neoforge" }.forEach { if (it.mandatory) { required(it.id) @@ -321,7 +325,7 @@ publisher { } setReleaseType(ReleaseType.RELEASE) - setLoaders(ModLoader.FORGE, ModLoader.NEOFORGE) + setLoaders(ModLoader.NEOFORGE) setCurseEnvironment(CurseEnvironment.BOTH) curseID.set(Constants.Publisher.curseforgeProjectId) @@ -331,7 +335,7 @@ publisher { displayName.set("[$mcVersion] v${project.version}") setGameVersions(mcVersion) setJavaVersions(jdkVersion) - artifact.set(tasks.named("reobfJar")) + artifact.set(tasks.named("jar")) addAdditionalFile(tasks.named("sourcesJar")) curseDepends { @@ -347,12 +351,12 @@ publisher { github { repo("yuuki1293/AE2PatternEncodingAccessTerminal") - tag("forge/v${mcVersion}-${project.version}") + tag("neoforge/v${mcVersion}-${project.version}") displayName("[$mcVersion] v${project.version}") createTag(true) createRelease(true) updateRelease(true) - target("forge/${mcVersion}") + target("neoforge/${mcVersion}") } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0c4a9e0..c2f510e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,44 +5,44 @@ plugin_modPublisher = "2.1.+" plugin_changelog = "2.2.1" plugin_spotless = "6.25.0" -minecraft = "1.20.1" -forge = "47.1.47" -parchmentmc = "2023.09.03" +minecraft = "1.21.1" +neoforge = "21.1.66" +parchmentmc = "2024.11.17" mixin = "0.8.5" mixinExtras = "0.4.1" -ae2 = "15.4.10" -jei = "15.20.0.112" -emi = "1.1.22+1.20.1" -jade = "6855440" -guideme = "20.1.14" -ae2lib = "1.0.2-1.20.1" -ae2wtlib = "7154316" -ae2wtlib_range = "15.3.0" -curios = "5.14.1+1.20.1" -architectury = "9.2.14" -cloth-config = "11.1.136" +ae2 = "19.2.17" +jei = "19.25.0.323" +emi = "1.1.22+1.21.1" +jade = "6853386" +guideme = "21.1.15" +ae2lib = "1.0.2" +ae2wtlib = "6939030" +ae2wtlib_range = "19.2.0" +curios = "9.5.1+1.21.1" +architectury = "18.0.6+neoforge" +cloth-config = "20.0.149+neoforge" [libraries] mixin = { module = "org.spongepowered:mixin", version.ref = "mixin" } mixinExtrasCommon = { module = "io.github.llamalad7:mixinextras-common", version.ref = "mixinExtras" } mixinExtrasForge = { module = "io.github.llamalad7:mixinextras-forge", version.ref = "mixinExtras" } -ae2 = { module = "appeng:appliedenergistics2-forge", version.ref = "ae2" } -jei = { module = "mezz.jei:jei-1.20.1-forge", version.ref = "jei" } -emi = { module = "dev.emi:emi-forge", version.ref = "emi" } +ae2 = { module = "appeng:appliedenergistics2-neoforge", version.ref = "ae2" } +jei = { module = "mezz.jei:jei-1.21.1-neoforge", version.ref = "jei" } +emi = { module = "dev.emi:emi-neoforge", version.ref = "emi" } jade = { module = "curse.maven:jade-324717", version.ref = "jade" } guideme = { module = "org.appliedenergistics:guideme", version.ref = "guideme" } ae2lib = { module = "io.github.pedroksl:ae2addonlib", version.ref = "ae2lib" } ae2wtlib = { module = "curse.maven:applied-energistics-2-wireless-terminals-459929", version.ref = "ae2wtlib" } -curios = { module = "top.theillusivec4.curios:curios-forge", version.ref = "curios" } -architectury = { module = "dev.architectury:architectury-forge", version.ref = "architectury" } -cloth-config = { module = "me.shedaniel.cloth:cloth-config-forge", version.ref = "cloth-config" } +curios = { module = "top.theillusivec4.curios:curios-neoforge", version.ref = "curios" } +architectury = { module = "dev.architectury:architectury-neoforge", version.ref = "architectury" } +cloth-config = { module = "me.shedaniel.cloth:cloth-config-neoforge", version.ref = "cloth-config" } [plugins] kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "plugin_kotlin" } kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "plugin_kotlin" } -moddev = { id = "net.neoforged.moddev.legacyforge", version.ref = "plugin_moddev" } +moddev = { id = "net.neoforged.moddev", version.ref = "plugin_moddev" } modPublisher = { id = "com.hypherionmc.modutils.modpublisher", version.ref = "plugin_modPublisher" } changelog = { id = "org.jetbrains.changelog", version.ref = "plugin_changelog"} spotless = { id = "com.diffplug.spotless", version.ref = "plugin_spotless" }