From 05a081364d9a8b107d053a3525714acf39b221bf Mon Sep 17 00:00:00 2001
From: chylex <contact@chylex.com>
Date: Tue, 16 Jul 2024 13:01:56 +0200
Subject: [PATCH] Migrate from NeoGradle to ModDevGradle

---
 NeoForge/build.gradle.kts | 35 ++++++++++++++++++++++-------------
 build.gradle.kts          |  6 ++----
 gradle.properties         |  4 ++--
 settings.gradle.kts       |  7 +++----
 4 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/NeoForge/build.gradle.kts b/NeoForge/build.gradle.kts
index 43c9bae..f0ea275 100644
--- a/NeoForge/build.gradle.kts
+++ b/NeoForge/build.gradle.kts
@@ -1,24 +1,33 @@
+val modId: String by project
 val neoForgeVersion: String by project
 
 plugins {
-	id("net.neoforged.gradle.userdev")
-	id("net.neoforged.gradle.mixin")
+	id("net.neoforged.moddev")
 }
 
-dependencies {
-	implementation("net.neoforged:neoforge:$neoForgeVersion")
-}
-
-runs {
-	val runJvmArgs: Set<String> by project
+neoForge {
+	version = neoForgeVersion
 	
-	configureEach {
-		workingDirectory = file("../run")
-		modSource(project.sourceSets.main.get())
-		jvmArguments(runJvmArgs)
+	mods {
+		register(modId) {
+			sourceSet(sourceSets.main.get())
+			sourceSet(rootProject.sourceSets.main.get())
+		}
 	}
 	
-	removeIf { it.name != "client" }
+	runs {
+		val runJvmArgs: Set<String> by project
+		
+		configureEach {
+			gameDirectory = file("../run")
+			jvmArguments.addAll(runJvmArgs)
+		}
+		
+		register("client") {
+			ideName.set("NeoForge Client")
+			client()
+		}
+	}
 }
 
 tasks.processResources {
diff --git a/build.gradle.kts b/build.gradle.kts
index 82fe15f..f9a7189 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -133,10 +133,8 @@ subprojects {
 		archivesName.set("$modNameStripped-${project.name}")
 	}
 	
-	listOf("compileJava", "compileTestJava").forEach {
-		tasks.named<JavaCompile>(it) {
-			source({ rootProject.sourceSets.main.get().allSource })
-		}
+	tasks.compileJava {
+		source({ rootProject.sourceSets.main.get().allSource })
 	}
 	
 	tasks.processResources {
diff --git a/gradle.properties b/gradle.properties
index 62868e7..8c3c54f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -12,12 +12,12 @@ modSides=client
 # Dependencies
 minecraftVersion=1.21
 neoForgeVersion=21.0.0-beta
-neoGradleVersion=7.0.152
+neoModDevVersion=1.0.21
 fabricVersion=0.15.11
 loomVersion=1.7
 mixinVersion=0.12.5+mixin.0.8.5
 
-# https://projects.neoforged.net/neoforged/neogradle/
+# https://projects.neoforged.net/neoforged/moddevgradle
 # https://fabricmc.net/develop/
 # https://github.com/FabricMC/fabric-loom/releases
 
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 32f7d9b..7fed142 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -8,10 +8,9 @@ pluginManagement {
 	}
 	
 	plugins {
-		val neoGradleVersion = settings.extra.get("neoGradleVersion") as? String
-		if (neoGradleVersion != null) {
-			id("net.neoforged.gradle.userdev") version neoGradleVersion
-			id("net.neoforged.gradle.mixin") version neoGradleVersion
+		val neoModDevVersion = settings.extra.get("neoModDevVersion") as? String
+		if (neoModDevVersion != null) {
+			id("net.neoforged.moddev") version neoModDevVersion
 		}
 		
 		val loomVersion = settings.extra.get("loomVersion") as? String