diff --git a/buildSrc/src/main/kotlin/jf.plugin-conventions.gradle.kts b/buildSrc/src/main/kotlin/jf.plugin-conventions.gradle.kts index 5708ca3..2da1fd9 100644 --- a/buildSrc/src/main/kotlin/jf.plugin-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/jf.plugin-conventions.gradle.kts @@ -14,4 +14,12 @@ repositories { name = "Fabric" url = uri("https://maven.fabricmc.net/") } + maven { + name = "Architectury" + url = uri("https://maven.architectury.dev/") + } + maven { + name = "Forge" + url = uri("https://files.minecraftforge.net/maven/") + } } diff --git a/convention/build.gradle.kts b/convention/build.gradle.kts index 5f3a586..672fd1c 100644 --- a/convention/build.gradle.kts +++ b/convention/build.gradle.kts @@ -1,8 +1,8 @@ plugins { - id("jf.plugin-conventions") + jf.`plugin-conventions` } dependencies { - implementation("org.eclipse.jgit:org.eclipse.jgit:6.5.0.202303070854-r") + implementation("org.eclipse.jgit:org.eclipse.jgit:6.8.0.202311291450-r") implementation("com.squareup:javapoet:1.13.0") } \ No newline at end of file diff --git a/jfmod/build.gradle.kts b/jfmod/build.gradle.kts index 90197b7..cd035e2 100644 --- a/jfmod/build.gradle.kts +++ b/jfmod/build.gradle.kts @@ -1,9 +1,9 @@ plugins { - id("jf.plugin-conventions") + jf.`plugin-conventions` } dependencies { - api(project(":lom")) - implementation("com.modrinth.minotaur:Minotaur:2.8.0") + api(projects.lom) + implementation("com.modrinth.minotaur:Minotaur:2.8.7") implementation("io.github.CDAGaming:CurseGradle:1.6.1") } diff --git a/jfmod/src/main/kotlin/io/gitlab/jfronny/scripts/JfModLegacyChecker.kt b/jfmod/src/main/kotlin/io/gitlab/jfronny/scripts/JfModLegacyChecker.kt index 3bd4bec..b2e6411 100644 --- a/jfmod/src/main/kotlin/io/gitlab/jfronny/scripts/JfModLegacyChecker.kt +++ b/jfmod/src/main/kotlin/io/gitlab/jfronny/scripts/JfModLegacyChecker.kt @@ -33,7 +33,7 @@ fun Project.legacyCheck(jfMod: JfModExtension) { } if (hasProperty("loader_version")) { logger.warn("Using loader_version is deprecated, please use the DSL") - jfMod.loaderVersion.set(prop("loader_version")) + jfMod.fabricLoaderVersion.set(prop("loader_version")) } if (hasProperty("yarn_mappings")) { logger.warn("Using yarn_mappings is deprecated, please use the DSL") diff --git a/lom/build.gradle.kts b/lom/build.gradle.kts index 2c161fe..762a1da 100644 --- a/lom/build.gradle.kts +++ b/lom/build.gradle.kts @@ -1,9 +1,9 @@ plugins { - id("jf.plugin-conventions") + jf.`plugin-conventions` } dependencies { - api(project(":convention")) - api("net.fabricmc:fabric-loom:1.5-SNAPSHOT") + api(projects.convention) + api("dev.architectury.loom:dev.architectury.loom.gradle.plugin:1.5-SNAPSHOT") api("com.github.johnrengelman:shadow:8.1.1") } \ No newline at end of file diff --git a/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExtension.kt b/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExtension.kt index f5f93b6..f8d3c76 100644 --- a/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExtension.kt +++ b/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExtension.kt @@ -16,17 +16,22 @@ interface LomExtension { } val minecraftVersion: Property - val loaderVersion: Property + val fabricLoaderVersion: Property + val neoforgeVersion: Property fun check(proj: Project) { yarnBuild.finalizeValue() minecraftVersion.finalizeValue() - loaderVersion.finalizeValue() + fabricLoaderVersion.finalizeValue() + neoforgeVersion.finalizeValue() + require(!(fabricLoaderVersion.isPresent && neoforgeVersion.isPresent)) { "fabricLoaderVersion and forgeVersion are mutually exclusive" } + require(fabricLoaderVersion.isPresent || neoforgeVersion.isPresent) { "fabricLoaderVersion or forgeVersion must be set" } } fun copyFrom(ext: LomExtension) { yarnBuild.set(ext.yarnBuild) minecraftVersion.set(ext.minecraftVersion) - loaderVersion.set(ext.loaderVersion) + fabricLoaderVersion.set(ext.fabricLoaderVersion) + neoforgeVersion.set(ext.neoforgeVersion) } } \ No newline at end of file diff --git a/lom/src/main/kotlin/lom.gradle.kts b/lom/src/main/kotlin/lom.gradle.kts index 8dd00b5..7958078 100644 --- a/lom/src/main/kotlin/lom.gradle.kts +++ b/lom/src/main/kotlin/lom.gradle.kts @@ -7,7 +7,7 @@ plugins { id("jf.java") idea `maven-publish` - id("fabric-loom") + id("dev.architectury.loom") id("com.github.johnrengelman.shadow") } @@ -17,6 +17,7 @@ val devlibs = project.layout.buildDirectory.dir("devlibs").get().asFile loom { runtimeOnlyLog4j.set(true) splitEnvironmentSourceSets() + silentMojangMappingsLicense() } // Create testmod source set with access to main and client classpaths @@ -84,8 +85,12 @@ earlyAfterEvaluate { minecraft("com.mojang:minecraft:${args.minecraftVersion.get()}") if (args.yarnBuild.isPresent) mappings("net.fabricmc:yarn:${args.minecraftVersion.get()}+${args.yarnBuild.get()}:v2") else loom.officialMojangMappings() - modImplementation("net.fabricmc:fabric-loader:${args.loaderVersion.get()}") - testImplementation("net.fabricmc:fabric-loader-junit:${args.loaderVersion.get()}") + if (!hasProperty("loom.platform") || property("loom.platform") == "fabric") { + modImplementation("net.fabricmc:fabric-loader:${args.fabricLoaderVersion.get()}") + testImplementation("net.fabricmc:fabric-loader-junit:${args.fabricLoaderVersion.get()}") + } else if (property("loom.platform") == "neoforge") { + "neoForge"("net.minecraftforge:forge:${args.minecraftVersion.get()}-${args.neoforgeVersion.get()}") + } testmodImplementation(sourceSets.main.get().output) testmodImplementation(sourceSets.client.get().output) @@ -149,9 +154,10 @@ tasks.remapJar { // fill in mod version tasks.processResources { - filesMatching("fabric.mod.json") { + filesMatching(listOf("fabric.mod.json", "META-INF/mods.toml")) { expand(mapOf("version" to project.versionS)) } + inputs.property("version", project.versionS) } // publish sources jar and remapped jar without JiJ'd deps diff --git a/settings.gradle.kts b/settings.gradle.kts index 79d60d0..4f64453 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,3 +3,5 @@ rootProject.name = "scripts" include("lom") include("convention") include("jfmod") + +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")