From 8020d0465006cc953a230d01490f0f67ae796531 Mon Sep 17 00:00:00 2001
From: Username404 <w.iron.zombie@gmail.com>
Date: Fri, 25 Mar 2022 17:24:04 +0100
Subject: [PATCH] Apply the modrinth minotaur plugin in each subproject

Signed-off-by: Username404 <w.iron.zombie@gmail.com>
---
 build.gradle.kts | 42 ++++++++++++++++--------------------------
 1 file changed, 16 insertions(+), 26 deletions(-)

diff --git a/build.gradle.kts b/build.gradle.kts
index a78d5aa..48939e1 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,4 +1,5 @@
 import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+import com.modrinth.minotaur.ModrinthExtension
 import com.modrinth.minotaur.request.VersionType
 import com.modrinth.minotaur.dependencies.DependencyType
 import net.fabricmc.loom.LoomGradleExtension
@@ -27,7 +28,7 @@ plugins {
     id("com.github.ben-manes.versions") version "0.42.0"
     id("net.kyori.indra.git") version "2.1.1"
     id("org.cqfn.diktat.diktat-gradle-plugin") version "1.0.3"
-    id("com.modrinth.minotaur") version "2.1.1"
+    id("com.modrinth.minotaur") version "2.1.1" apply false
 }
 
 group = "fr.username404"
@@ -102,6 +103,19 @@ subprojects {
         "minecraft"("com.mojang:minecraft:${rootProject.property("minecraft")}")
         "mappings"(mappingsDep)
     }
+    apply(plugin = "com.modrinth.minotaur")
+    extensions.configure<ModrinthExtension>("modrinth") {
+        projectId.set("OuGyGg6A")
+        syncBodyFrom.set("$rootDir/README.md")
+        gameVersions.add(mcBase)
+        if (project.name == "forge") dependencies.add(com.modrinth.minotaur.dependencies.Dependency("Bxm9xbNJ", DependencyType.REQUIRED)) // Kotlinforforge dependency
+        versionNumber.set(rootProject.version.toString() + "-${project.name}")
+        versionType.set(VersionType.ALPHA.name)
+        detectLoaders.set(false)
+        loaders.add(project.name)
+        versionName.set("${rootProject.name} ${rootProject.version}")
+        uploadFile.set(fileTree("$rootDir/remappedJars/").files.find { it.name.contains(project.name) })
+    }
     tasks {
         apply(plugin = "net.kyori.indra.git")
         withType(Jar::class) {
@@ -183,6 +197,7 @@ subprojects {
             input.set(shrinkedJar)
             if (!archiveFileName.get().contains("common")) destinationDirectory.set(file("$rootDir/remappedJars"))
         }
+        getByName("modrinth").dependsOn(build)
     }
 }
 
@@ -262,28 +277,3 @@ repositories {
 }
 
 file("remappedJars").let { if (it.exists()) tasks.clean.get().delete.add(it) }
-
-modrinth {
-    projectId.set("OuGyGg6A")
-    gameVersions.add(mcBase)
-    dependencies.add(com.modrinth.minotaur.dependencies.Dependency("Bxm9xbNJ", DependencyType.REQUIRED)) // Kotlinforforge dependency
-    versionType.set(VersionType.ALPHA.name)
-    detectLoaders.set(false)
-    versionName.set("${project.name} $versionNumber for Minecraft $gameVersions and higher")
-    fileTree("$rootDir/remappedJars/").files.forEach {
-        with(it.name) {
-            when {
-                contains("fabric") -> {
-                    loaders.add("fabric")
-                    uploadFile.set(it)
-                }
-                contains("forge") -> {
-                    loaders.add("forge")
-                    additionalFiles.add(it)
-                }
-            }
-        }
-    }
-}
-
-tasks.modrinth.get().dependsOn(tasks.build)