From d9dccdf3752a3b1c87b98013237fa869280e43c2 Mon Sep 17 00:00:00 2001 From: Mysticdrew Date: Tue, 8 Oct 2024 13:40:52 -0500 Subject: [PATCH] create 1.21.1 branch and update to use MDG instead of vanilla gradle --- build.gradle | 12 +++++++- common/build.gradle | 32 ++++++++++++-------- fabric/build.gradle | 19 ++++++++---- forge/build.gradle | 14 +++++++-- gradle.properties | 15 ++++++---- neoforge/build.gradle | 68 +++++++++++++++++++++++++++---------------- 6 files changed, 109 insertions(+), 51 deletions(-) diff --git a/build.gradle b/build.gradle index 54c0db2..099a529 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,8 @@ plugins { - id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.7" + id 'net.neoforged.moddev' version '1.0.11' apply false } + + subprojects { apply plugin: 'java' apply plugin: 'maven-publish' @@ -54,6 +56,14 @@ subprojects { it.options.getRelease().set(21) } + tasks.withType(Javadoc).configureEach { + source(project(":common").sourceSets.main.allJava) + } + + tasks.named("sourcesJar", Jar) { + from(project(":common").sourceSets.main.allSource) + } + // Disables Gradle's custom module metadata from being published to maven. The // metadata includes mapped dependencies which are not reasonably consumable by // other mod developers. diff --git a/common/build.gradle b/common/build.gradle index 0dc9b22..bea8834 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,6 +1,7 @@ plugins { + id 'idea' id 'java' - id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' + id 'net.neoforged.moddev' id 'maven-publish' } @@ -8,18 +9,25 @@ version = "${project.version}-${project.minecraft_version}" group = project.group_id archivesBaseName = "${project.base_name}" + "-common" -minecraft { - version(minecraft_version) - runs { - if (project.hasProperty('common_runs_enabled') ? project.findProperty('common_runs_enabled').toBoolean() : true) { +test { + useJUnitPlatform() +} - server(project.hasProperty('common_server_run_name') ? project.findProperty('common_server_run_name') : 'vanilla_server') { - workingDirectory(this.file("run")) - } - client(project.hasProperty('common_client_run_name') ? project.findProperty('common_client_run_name') : 'vanilla_client') { - workingDirectory(this.file("run")) - } - } +neoForge { + neoFormVersion = neo_form_version + // Automatically enable AccessTransformers if the file exists + // While this location can be changed, it is recommended for + // common and neoforge to share an accesstransformer file + // and this location is hardcoded in FML + // https://github.com/neoforged/FancyModLoader/blob/a952595eaaddd571fbc53f43847680b00894e0c1/loader/src/main/java/net/neoforged/fml/loading/moddiscovery/ModFile.java#L118 + def at = file('src/main/resources/META-INF/accesstransformer.cfg') + if (at.exists()) { + accessTransformers.add(at.absolutePath) + } + addModdingDependenciesTo(sourceSets["test"]) + parchment { + minecraftVersion = mappings_mc_version + mappingsVersion = mappings_date } } diff --git a/fabric/build.gradle b/fabric/build.gradle index 1ce5353..39c69bf 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -37,7 +37,7 @@ dependencies { minecraft "com.mojang:minecraft:${minecraft_version}" mappings loom.officialMojangMappings() modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}" compileOnly group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' @@ -83,7 +83,7 @@ task processDocs(type: Copy) { expand 'version': project.version, 'date': getDate(), 'mcversion': project.minecraft_version, - 'loaderversion': project.fabric_version, + 'loaderversion': project.fabric_api_version, 'loadername': "Fabric" } into "$project.buildDir/doc" @@ -98,8 +98,17 @@ processResources { } } -tasks.withType(JavaCompile) { +tasks.withType(JavaCompile).configureEach { source(project(":common").sourceSets.main.allSource) + options.encoding = "UTF-8" +} + +tasks.withType(Javadoc).configureEach { + source(project(":common").sourceSets.main.allJava) +} + +tasks.named("sourcesJar", Jar) { + from(project(":common").sourceSets.main.allSource) } publishing { @@ -141,7 +150,7 @@ task publishCurseForge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) mainFile.releaseType = release_type mainFile.addModLoader("Fabric", "Quilt") mainFile.addJavaVersion("Java 21") - mainFile.addGameVersion("${project.minecraft_version}","1.21.1") + mainFile.addGameVersion("${project.minecraft_version}") mainFile.changelogType = "html" mainFile.changelog = file("$project.buildDir/doc/changelog.html") } @@ -156,7 +165,7 @@ modrinth { versionName = "${archivesBaseName}-${version}" versionType = release_type uploadFile = remapJar - gameVersions = ["${project.minecraft_version}","1.21.1"] + gameVersions = ["${project.minecraft_version}"] loaders = ["fabric", "quilt"] changelog = file("$project.buildDir/doc/changelog.html").exists() ? file("$project.buildDir/doc/changelog.html").text : null } diff --git a/forge/build.gradle b/forge/build.gradle index 8e5b871..8194672 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -100,10 +100,18 @@ dependencies { compileOnly project(":common") } -tasks.withType(JavaCompile) { +tasks.withType(JavaCompile).configureEach { source(project(":common").sourceSets.main.allSource) + options.encoding = "UTF-8" } +tasks.withType(Javadoc).configureEach { + source(project(":common").sourceSets.main.allJava) +} + +tasks.named("sourcesJar", Jar) { + from(project(":common").sourceSets.main.allSource) +} processResources { from project(":common").sourceSets.main.resources } @@ -182,7 +190,7 @@ task publishCurseForge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) mainFile.releaseType = release_type mainFile.addModLoader("Forge") mainFile.addJavaVersion("Java 21") - mainFile.addGameVersion("${project.minecraft_version}","1.21.1") + mainFile.addGameVersion("${project.minecraft_version}") mainFile.changelogType = "html" mainFile.changelog = file("$project.buildDir/doc/changelog.html") } @@ -196,7 +204,7 @@ modrinth { versionName = "${archivesBaseName}-${version}" versionType = release_type uploadFile = jar - gameVersions = ["${project.minecraft_version}","1.21.1"] + gameVersions = ["${project.minecraft_version}"] loaders = ["forge"] changelog = file("$project.buildDir/doc/changelog.html").exists() ? file("$project.buildDir/doc/changelog.html").text : null } diff --git a/gradle.properties b/gradle.properties index 998aa24..bcae9ad 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,18 +5,23 @@ group_id=mysticdrew curseforge_project_id=806044 modrinth_project_id=HIuqnQpi +mappings_mc_version=1.21 +mappings_date=2024.07.28 + # Common -minecraft_version=1.21 +minecraft_version=1.21.1 # Forge -forge_version=51.0.0 +forge_version=52.0.16 #neoforge -neoforge_version=21.0.0-beta +neoforge_version=21.1.65 +# https://projects.neoforged.net/neoforged/neoform +neo_form_version=1.21.1-20240808.144430 # Fabric -fabric_version=0.100.1+1.21 -fabric_loader_version=0.15.11 +fabric_api_version=0.105.0+1.21.1 +fabric_loader_version=0.16.5 # Mod options mod_name=Common Networking diff --git a/neoforge/build.gradle b/neoforge/build.gradle index fd67344..c2cadd2 100644 --- a/neoforge/build.gradle +++ b/neoforge/build.gradle @@ -19,7 +19,7 @@ plugins { id 'idea' id 'java' id 'maven-publish' - id 'net.neoforged.gradle.userdev' version '[7.0.145]' + id 'net.neoforged.moddev' id 'net.darkhax.curseforgegradle' version '1.+' } @@ -36,24 +36,37 @@ tasks.withType(GenerateModuleMetadata) { enabled = false } -runs { - configureEach { - systemProperty 'forge.logging.markers', 'REGISTRIES' - systemProperty 'mixin.debug.export', 'true' - systemProperty 'forge.logging.console.level', 'info' - systemProperty 'journeymap.map_testing', 'true' -// ideaModule "${rootProject.name}.${project.name}.main" - modSource project.sourceSets.main +neoForge { + version = neoforge_version + // Automatically enable neoforge AccessTransformers if the file exists + def at = project(':common').file('src/main/resources/META-INF/accesstransformer.cfg') + if (at.exists()) { + accessTransformers.add(at.absolutePath) } - - client { - workingDirectory project.file('run/client') -// taskName 'Client' + addModdingDependenciesTo(sourceSets["test"]) + parchment { + minecraftVersion = mappings_mc_version + mappingsVersion = mappings_date } - - server { - workingDirectory project.file('run/server') -// taskName 'Server' + runs { + configureEach { +// systemProperty('neoforge.enabledGameTestNamespaces', mod_id) + ideName = "NeoForge ${it.name.capitalize()} (${project.path})" // Unify the run config names with fabric + jvmArgument("-Dmixin.debug.export=true") + } + client { + client() + gameDirectory = project.file('run/client') + } + server { + server() + gameDirectory = project.file("run/server") + } + } + mods { + "${mod_id}" { + sourceSet sourceSets.main + } } } @@ -61,18 +74,23 @@ runs { sourceSets.main.resources.srcDir 'src/generated/resources' dependencies { - implementation "net.neoforged:neoforge:${project.neoforge_version}" compileOnly project(":common") } -//tasks.withType(JavaCompile).matching {name != "neoforge"}.configureEach { -// source(project(":common").sourceSets.main.allSource) -//} - -tasks.named('compileJava', JavaCompile).configure { +tasks.withType(JavaCompile).configureEach { source(project(":common").sourceSets.main.allSource) + options.encoding = "UTF-8" +} + +tasks.withType(Javadoc).configureEach { + source(project(":common").sourceSets.main.allJava) } +tasks.named("sourcesJar", Jar) { + from(project(":common").sourceSets.main.allSource) +} + + processResources { from project(":common").sourceSets.main.resources } @@ -151,7 +169,7 @@ task publishCurseForge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) mainFile.releaseType = release_type mainFile.addModLoader("NeoForge") mainFile.addJavaVersion("Java 21") - mainFile.addGameVersion("${project.minecraft_version}","1.21.1") + mainFile.addGameVersion("${project.minecraft_version}") mainFile.changelogType = "html" mainFile.changelog = file("$project.buildDir/doc/changelog.html") } @@ -165,7 +183,7 @@ modrinth { versionName = "${archivesBaseName}-${version}" versionType = release_type uploadFile = jar - gameVersions = ["${project.minecraft_version}","1.21.1"] + gameVersions = ["${project.minecraft_version}"] loaders = ["neoforge"] changelog = file("$project.buildDir/doc/changelog.html").exists() ? file("$project.buildDir/doc/changelog.html").text : null }