From 761fdb76dab87438ae3136f2997f1ddf15d8856e Mon Sep 17 00:00:00 2001
From: chylex <contact@chylex.com>
Date: Tue, 2 Jul 2024 18:06:55 +0200
Subject: [PATCH] Switch from separate loader jars to one multiloader jar

---
 Fabric/build.gradle.kts                       |  11 +-
 .../resources/assets/bettercontrols/icon.png  | Bin 21941 -> 0 bytes
 Fabric/src/main/resources/fabric.mod.json     |   6 +-
 .../resources/META-INF/neoforge.mods.toml     |   6 +-
 NeoForge/src/main/resources/icon.png          | Bin 21941 -> 0 bytes
 build.gradle.kts                              | 107 ++++++++++++------
 gradle.properties                             |   1 +
 .../resources/META-INF/jarjar/metadata.json   |  13 +++
 src/multiloader/resources/fabric.mod.json     |  34 ++++++
 9 files changed, 138 insertions(+), 40 deletions(-)
 delete mode 100644 Fabric/src/main/resources/assets/bettercontrols/icon.png
 delete mode 100644 NeoForge/src/main/resources/icon.png
 create mode 100644 src/multiloader/resources/META-INF/jarjar/metadata.json
 create mode 100644 src/multiloader/resources/fabric.mod.json

diff --git a/Fabric/build.gradle.kts b/Fabric/build.gradle.kts
index 06253a0..eed0938 100644
--- a/Fabric/build.gradle.kts
+++ b/Fabric/build.gradle.kts
@@ -1,3 +1,5 @@
+import org.gradle.jvm.tasks.Jar
+
 val modId: String by project
 val minecraftVersion: String by project
 val fabricVersion: String by project
@@ -45,6 +47,11 @@ tasks.jar {
 	exclude("com/terraformersmc/modmenu/")
 }
 
-tasks.remapJar {
-	archiveVersion.set(tasks.jar.get().archiveVersion)
+tasks.register<Jar>("uncompressedRemapJar") {
+	group = "fabric"
+	
+	from(tasks.remapJar.map { it.outputs.files.map(::zipTree) })
+
+	archiveClassifier.set("uncompressed")
+	entryCompression = ZipEntryCompression.STORED // Reduces size of multiloader jar.
 }
diff --git a/Fabric/src/main/resources/assets/bettercontrols/icon.png b/Fabric/src/main/resources/assets/bettercontrols/icon.png
deleted file mode 100644
index a31f768115ea33b164455deacbed0bc06f21470d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 21941
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
DzK4Jx

diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json
index 8931b7c..981905c 100644
--- a/Fabric/src/main/resources/fabric.mod.json
+++ b/Fabric/src/main/resources/fabric.mod.json
@@ -6,7 +6,7 @@
   "version": "${version}",
   "license": "${license}",
   
-  "icon": "assets/bettercontrols/icon.png",
+  "icon": "assets/${id}/logo.png",
   
   "authors": [
     "${author}"
@@ -18,7 +18,7 @@
     "sources": "${sourcesURL}"
   },
   
-  "environment": "client",
+  "environment": "${sidesForFabric}",
   "entrypoints": {
     "client": [ "chylex.bettercontrols.BetterControlsMod" ],
     "modmenu": [ "chylex.bettercontrols.compatibility.ModMenuSupport" ]
@@ -26,7 +26,7 @@
   
   "mixins": [{
     "config": "${id}.mixins.json",
-    "environment": "client"
+    "environment": "${sidesForFabric}"
   }],
   
   "depends": {
diff --git a/NeoForge/src/main/resources/META-INF/neoforge.mods.toml b/NeoForge/src/main/resources/META-INF/neoforge.mods.toml
index b29d45d..36d973f 100644
--- a/NeoForge/src/main/resources/META-INF/neoforge.mods.toml
+++ b/NeoForge/src/main/resources/META-INF/neoforge.mods.toml
@@ -11,7 +11,7 @@ displayURL = "${sourcesURL}"
 description = "${description}"
 authors = "${author}"
 version = "${version}"
-logoFile = "icon.png"
+logoFile = "assets/${id}/logo.png"
 
 [[mixins]]
 config = "${id}.mixins.json"
@@ -21,11 +21,11 @@ modId = "minecraft"
 type = "required"
 versionRange = "[${minimumMinecraftVersion},)"
 ordering = "NONE"
-side = "CLIENT"
+side = "${sidesForNeoForge}"
 
 [[dependencies.${id}]]
 modId = "neoforge"
 type = "required"
 versionRange = "[${minimumNeoForgeVersion},)"
 ordering = "NONE"
-side = "CLIENT"
+side = "${sidesForNeoForge}"
diff --git a/NeoForge/src/main/resources/icon.png b/NeoForge/src/main/resources/icon.png
deleted file mode 100644
index a31f768115ea33b164455deacbed0bc06f21470d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 21941
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
DzK4Jx

diff --git a/build.gradle.kts b/build.gradle.kts
index 68ca0e0..c1ae8dd 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,6 +1,6 @@
 @file:Suppress("ConvertLambdaToReference")
 
-import org.gradle.api.file.DuplicatesStrategy.EXCLUDE
+import org.gradle.jvm.tasks.Jar
 
 val modId: String by project
 val modName: String by project
@@ -10,6 +10,7 @@ val modVersion: String by project
 val modLicense: String by project
 val modSourcesURL: String by project
 val modIssuesURL: String by project
+val modSides: String by project
 
 val minecraftVersion: String by project
 val mixinVersion: String by project
@@ -19,7 +20,6 @@ val minimumNeoForgeVersion: String by project
 val minimumFabricVersion: String by project
 
 val modNameStripped = modName.replace(" ", "")
-val jarVersion = "$minecraftVersion+v$modVersion"
 
 plugins {
 	idea
@@ -95,6 +95,33 @@ allprojects {
 		implementation("org.jetbrains:annotations:24.1.0")
 	}
 	
+	tasks.withType<ProcessResources> {
+		val (sidesForNeoForge, sidesForFabric) = when (modSides) {
+			"both"   -> Pair("BOTH", "*")
+			"client" -> Pair("CLIENT", "client")
+			"server" -> Pair("SERVER", "server")
+			else     -> error("Invalid modSides value: $modSides")
+		}
+		
+		inputs.property("id", modId)
+		inputs.property("name", modName)
+		inputs.property("description", modDescription)
+		inputs.property("version", modVersion)
+		inputs.property("author", modAuthor)
+		inputs.property("license", modLicense)
+		inputs.property("sourcesURL", modSourcesURL)
+		inputs.property("issuesURL", modIssuesURL)
+		inputs.property("sidesForNeoForge", sidesForNeoForge)
+		inputs.property("sidesForFabric", sidesForFabric)
+		inputs.property("minimumMinecraftVersion", minimumMinecraftVersion)
+		inputs.property("minimumNeoForgeVersion", minimumNeoForgeVersion)
+		inputs.property("minimumFabricVersion", minimumFabricVersion)
+		
+		from(rootProject.file("logo.png")) {
+			into("assets/$modId")
+		}
+	}
+	
 	tasks.withType<AbstractArchiveTask>().configureEach {
 		isPreserveFileTimestamps = false
 		isReproducibleFileOrder = true
@@ -117,37 +144,16 @@ subprojects {
 	}
 	
 	tasks.processResources {
-		inputs.property("id", modId)
-		inputs.property("name", modName)
-		inputs.property("description", modDescription)
-		inputs.property("version", modVersion)
-		inputs.property("author", modAuthor)
-		inputs.property("license", modLicense)
-		inputs.property("sourcesURL", modSourcesURL)
-		inputs.property("issuesURL", modIssuesURL)
-		inputs.property("minimumMinecraftVersion", minimumMinecraftVersion)
-		inputs.property("minimumNeoForgeVersion", minimumNeoForgeVersion)
-		inputs.property("minimumFabricVersion", minimumFabricVersion)
-		
 		from(rootProject.sourceSets.main.get().resources) {
 			expand(inputs.properties)
 		}
 	}
 	
 	tasks.jar {
-		archiveVersion.set(jarVersion)
-		
-		from(rootProject.file("LICENSE"))
+		entryCompression = ZipEntryCompression.STORED // Reduces size of multiloader jar.
 		
 		manifest {
-			attributes(
-				"Specification-Title" to modId,
-				"Specification-Vendor" to modAuthor,
-				"Specification-Version" to "1",
-				"Implementation-Title" to "$modNameStripped-${project.name}",
-				"Implementation-Vendor" to modAuthor,
-				"Implementation-Version" to modVersion,
-			)
+			packageInformation(modId, "$modNameStripped-${project.name}")
 		}
 	}
 	
@@ -156,18 +162,55 @@ subprojects {
 	}
 }
 
-val copyJars = tasks.register<Copy>("copyJars") {
+fun Manifest.packageInformation(specificationTitle: String, implementationTitle: String) {
+	attributes(
+		"Specification-Title" to specificationTitle,
+		"Specification-Vendor" to modAuthor,
+		"Specification-Version" to "1",
+		"Implementation-Title" to implementationTitle,
+		"Implementation-Vendor" to modAuthor,
+		"Implementation-Version" to modVersion,
+	)
+}
+
+val multiloaderSources = sourceSets.register("multiloader")
+
+val multiloaderJar = tasks.register<Jar>("multiloaderJar") {
 	group = "build"
-	duplicatesStrategy = EXCLUDE
 	
-	for (subproject in subprojects) {
-		dependsOn(subproject.tasks.assemble)
-		from(subproject.base.libsDirectory.file("${subproject.base.archivesName.get()}-$jarVersion.jar"))
+	archiveBaseName.set(modNameStripped)
+	archiveVersion.set("$minecraftVersion+v$modVersion")
+	
+	destinationDirectory = layout.buildDirectory.dir("dist")
+	
+	fun includeJar(project: Project, jarTaskName: String) {
+		from(project.tasks.named(jarTaskName).map { it.outputs }) {
+			into("jars")
+			rename { "$modNameStripped-${project.name}.jar" }
+		}
 	}
 	
-	into(project.layout.buildDirectory.dir("dist"))
+	findProject(":NeoForge")?.let { includeJar(it, "jar") }
+	findProject(":Fabric")?.let { includeJar(it, "uncompressedRemapJar") }
+	
+	from(rootProject.file("LICENSE"))
+	from(multiloaderSources.map { it.output })
+	
+	manifest {
+		packageInformation("$modId-multiloader", modNameStripped)
+		attributes("FMLModType" to "GAMELIBRARY")
+	}
+}
+
+tasks.named<ProcessResources>("processMultiloaderResources").configure {
+	inputs.property("group", project.group)
+	inputs.property("jarPrefix", modNameStripped)
+	
+	filesMatching(listOf("fabric.mod.json", "META-INF/jarjar/metadata.json")) {
+		expand(inputs.properties)
+	}
 }
 
 tasks.assemble {
-	finalizedBy(copyJars)
+	finalizedBy(multiloaderJar)
 }
diff --git a/gradle.properties b/gradle.properties
index 7601921..d494e95 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -7,6 +7,7 @@ modVersion=1.3.1
 modLicense=MPL-2.0
 modSourcesURL=https://github.com/chylex/Better-Controls
 modIssuesURL=https://github.com/chylex/Better-Controls/issues
+modSides=client
 
 # Dependencies
 minecraftVersion=1.21
diff --git a/src/multiloader/resources/META-INF/jarjar/metadata.json b/src/multiloader/resources/META-INF/jarjar/metadata.json
new file mode 100644
index 0000000..6891596
--- /dev/null
+++ b/src/multiloader/resources/META-INF/jarjar/metadata.json
@@ -0,0 +1,13 @@
+{
+  "jars": [{
+    "identifier": {
+      "group": "${group}",
+      "artifact": "${id}"
+    },
+    "version": {
+      "artifactVersion": "${version}",
+      "range": "[${version}]"
+    },
+    "path": "jars/${jarPrefix}-NeoForge.jar"
+  }]
+}
diff --git a/src/multiloader/resources/fabric.mod.json b/src/multiloader/resources/fabric.mod.json
new file mode 100644
index 0000000..9b9adbf
--- /dev/null
+++ b/src/multiloader/resources/fabric.mod.json
@@ -0,0 +1,34 @@
+{
+  "schemaVersion": 1,
+  "id": "${id}_multiloader",
+  "name": "${name} (Multiloader)",
+  "description": "${description}",
+  "version": "${version}",
+  "license": "${license}",
+  
+  "icon": "assets/${id}/logo.png",
+  
+  "authors": [
+    "${author}"
+  ],
+  
+  "contact": {
+    "homepage": "https://chylex.com",
+    "issues": "${issuesURL}",
+    "sources": "${sourcesURL}"
+  },
+  
+  "environment": "${sidesForFabric}",
+  
+  "jars": [{
+      "file": "jars/${jarPrefix}-Fabric.jar"
+  }],
+  
+  "custom": {
+    "modmenu": {
+      "parent": "${id}",
+      "badges": [ "library" ],
+      "update_checker": false
+    }
+  }
+}