From 5dc4baebcdcaf339d45eed7ee974c5e09ed1bbd8 Mon Sep 17 00:00:00 2001 From: BennyDioxide Date: Sun, 3 Jul 2022 17:40:12 +0800 Subject: [PATCH] Done the basic quilt gradle settings --- fabric-like/build.gradle.kts | 41 ++++++++++++ fabric/build.gradle.kts | 24 ++----- forge/build.gradle.kts | 2 +- gradle.properties | 8 ++- quilt/build.gradle.kts | 122 +++++++++++++++++++++++++++++++++++ quilt/gradle.properties | 1 + settings.gradle.kts | 2 + 7 files changed, 178 insertions(+), 22 deletions(-) create mode 100644 fabric-like/build.gradle.kts create mode 100644 quilt/build.gradle.kts create mode 100644 quilt/gradle.properties diff --git a/fabric-like/build.gradle.kts b/fabric-like/build.gradle.kts new file mode 100644 index 00000000..0e7709da --- /dev/null +++ b/fabric-like/build.gradle.kts @@ -0,0 +1,41 @@ +architectury { + common(project.property("enabled_platforms").toString().split(",")) +} + +base.archivesName.set("${project.property("archives_base_name")}-fabric-like") + +repositories { + mavenCentral() + maven { + url = uri("https://bai.jfrog.io/artifactory/maven") //ModMenu + content { + includeGroup("com.terraformersmc") + } + } + maven { + // Patchouli + url = uri("https://maven.blamejared.com") + } +} + +dependencies { + modImplementation("net.fabricmc:fabric-loader:${project.property("fabric_loader_version")}") + modApi("net.fabricmc.fabric-api:fabric-api:${project.property("fabric_api_version")}") + // Remove the next line if you don't want to depend on the API + modApi("dev.architectury:architectury-fabric:${project.property("architectury_version")}") + modApi("me.shedaniel.cloth:cloth-config-fabric:${project.property("cloth_config_version")}") { + exclude(module = "fabric-api") + } + + modImplementation("vazkii.patchouli:Patchouli:${project.property("patchouli_version")}-FABRIC-SNAPSHOT") + + "compileClasspath"(project(path = ":common", configuration = "namedElements")) { isTransitive = false } + + modImplementation("com.terraformersmc:modmenu:4.0.0") +} + +val accessWidenerFile = project(":common").file("src/main/resources/rpmtw_platform_mod.accesswidener") + +loom { + accessWidenerPath.set(accessWidenerFile) +} \ No newline at end of file diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index 8f99435f..a4a212e5 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -9,20 +9,6 @@ architectury { base.archivesName.set("${project.property("archives_base_name")}-fabric") -repositories { - mavenCentral() - maven { - url = uri("https://bai.jfrog.io/artifactory/maven") //ModMenu - content { - includeGroup("com.terraformersmc") - } - } - maven { - // Patchouli - url = uri("https://maven.blamejared.com") - } -} - val common by configurations.registering val shadowCommon by configurations.registering // Don't use shadow from the shadow plugin because we don't want IDEA to index this. configurations { @@ -47,10 +33,11 @@ dependencies { } modApi("net.fabricmc:fabric-language-kotlin:${project.property("fabric-kotlin_version")}") - modImplementation("vazkii.patchouli:Patchouli:${project.property("patchouli_version")}-FABRIC-SNAPSHOT") - "common"(project(path = ":common", configuration = "namedElements")) { isTransitive = false } "shadowCommon"(project(path = ":common", configuration = "transformProductionFabric")) { isTransitive = false } + "common"(project(path = ":fabric-like", configuration = "namedElements")) { isTransitive = false } + "shadowCommon"(project(path = ":fabric-like", configuration = "transformProductionFabric")) { isTransitive = false } + "shadowCommon"( "com.github.RPMTW:RPMTW-API-Client-Kotlin:${project.property("rpmtw_api_client_version")}" ) { @@ -60,9 +47,6 @@ dependencies { }.let { implementation(it) } - - - modImplementation("com.terraformersmc:modmenu:4.0.0") } val accessWidenerFile = project(":common").file("src/main/resources/rpmtw_platform_mod.accesswidener") @@ -121,7 +105,7 @@ components.getByName("java") { publishing { publications { - create("mavenCommon") { + create("mavenFabric") { artifactId = project.property("archives_base_name").toString() from(components["java"]) } diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 4717763b..39d6a9bd 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -118,7 +118,7 @@ repositories { publishing { publications { - create("mavenCommon") { + create("mavenForge") { artifactId = project.property("archives_base_name").toString() from(components["java"]) } diff --git a/gradle.properties b/gradle.properties index 0aed3492..9e8e906f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ org.gradle.jvmargs=-Xmx3096M minecraft_version=1.19 -enabled_platforms=fabric,forge +enabled_platforms=quilt,fabric,forge archives_base_name=rpmtw-platform-mod-1.19 mod_version=1.4.0 maven_group=com.rpmtw.rpmtw_platform_mod @@ -14,6 +14,12 @@ fabric-kotlin_version=1.8.1+kotlin.1.7.0 forge_version=1.19-41.0.16 kotlin_forge_version=3.6.0 +# Quilt +quilt_loader_version=0.17.1-beta.4 +qsl_version=2.0.0-beta.9 +quilted_fabric_api_version=2.0.0-beta.3+0.57.0 +quilt_kotlin_libraries=0.1.0-SNAPSHOT + # Other mod patchouli_version=1.19-74 cloth_config_version=7.0.72 diff --git a/quilt/build.gradle.kts b/quilt/build.gradle.kts new file mode 100644 index 00000000..68eb9d18 --- /dev/null +++ b/quilt/build.gradle.kts @@ -0,0 +1,122 @@ +plugins { + id("com.github.johnrengelman.shadow") version "7.1.2" +} + +repositories { + maven { url = uri("https://maven.quiltmc.org/repository/release/") } + maven { url = uri("https://maven.quiltmc.org/repository/snapshot/") } // Kotlin currently is in snapshot +} + +architectury { + platformSetupLoomIde() + loader("quilt") +} + +base.archivesName.set("${project.property("archives_base_name")}-quilt") + +val common by configurations.registering +val shadowCommon by configurations.registering // Don't use shadow from the shadow plugin because we don't want IDEA to index this. +configurations { + compileClasspath { + extendsFrom(common.get()) + } + + runtimeClasspath { + extendsFrom(common.get()) + } + + getByName("developmentQuilt").extendsFrom(common.get()) +} + +val accessWidenerFile = project(":common").file("src/main/resources/rpmtw_platform_mod.accesswidener") + +loom { + accessWidenerPath.set(accessWidenerFile) +} + +dependencies { + modImplementation("org.quiltmc:quilt-loader:${project.property("quilt_loader_version")}") + modApi("org.quiltmc.quilted-fabric-api:quilted-fabric-api:${project.property("quilted_fabric_api_version")}-${project.property("minecraft_version")}") + // Remove the next few lines if you don't want to depend on the API + modApi("dev.architectury:architectury-fabric:${project.property("architectury_version")}") { + exclude(group = "net.fabricmc") + exclude(group = "net.fabricmc.fabric-api") + } + modApi("org.quiltmc.quilt-kotlin-libraries:quilt-kotlin-libraries:${project.property("quilt_kotlin_libraries")}") + + "common"(project(path = ":common", configuration = "namedElements")) { isTransitive = false } + "shadowCommon"(project(path = ":common", configuration = "transformProductionQuilt")) { isTransitive = false } + "common"(project(path = ":fabric-like", configuration = "namedElements")) { isTransitive = false } + "shadowCommon"(project(path = ":fabric-like", configuration = "transformProductionQuilt")) { isTransitive = false } + + "shadowCommon"( + "com.github.RPMTW:RPMTW-API-Client-Kotlin:${project.property("rpmtw_api_client_version")}" + ) { + exclude("com.google.code.gson") + exclude("org.jetbrains.kotlinx") + exclude("org.jetbrains.kotlin") + }.let { + implementation(it) + } +} + +tasks { + val resourcesPath = file("src/main/resources") + // The access widener file is needed in :fabric project resources when the game is run. + val copyAccessWidener by registering(Copy::class) { + from(accessWidenerFile) + into(resourcesPath) + } + + processResources { + dependsOn(copyAccessWidener) + inputs.property("group", project.group) + inputs.property("version", project.version) + + filesMatching("quilt.mod.json") { + expand("group" to project.group, "version" to project.version) + } + } + + + shadowJar { + configurations = listOf(shadowCommon.get()) + archiveClassifier.set("dev-shadow") + } + + remapJar { + inputFile.set(shadowJar.get().archiveFile) + dependsOn(shadowJar) + archiveClassifier.set(null as String?) + } + + jar { + archiveClassifier.set("dev") + } + + sourcesJar { + val commonSources = project(":common").tasks.sourcesJar + dependsOn(commonSources) + from(commonSources.get().archiveFile.map { zipTree(it) }) + exclude("rpmtw_platform_mod.accesswidener") + exclude("rpmtw_platform_mod.mixins.json") + } +} + +components.getByName("java") { + withVariantsFromConfiguration(project.configurations.shadowRuntimeElements.get()) { + skip() + } +} + +publishing { + publications { + create("mavenQuilt") { + artifactId = project.property("archives_base_name").toString() + from(components["java"]) + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories {} +} \ No newline at end of file diff --git a/quilt/gradle.properties b/quilt/gradle.properties new file mode 100644 index 00000000..96758ce8 --- /dev/null +++ b/quilt/gradle.properties @@ -0,0 +1 @@ +loom.platform=quilt \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index a8a7d758..9f9e725e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,7 +8,9 @@ pluginManagement { } include("common") +include("fabric-like") include("fabric") +include("quilt") include("forge") rootProject.name = "rpmtw-platform-mod" \ No newline at end of file