diff --git a/buildSrc/build.gradle b/build-logic/build.gradle similarity index 100% rename from buildSrc/build.gradle rename to build-logic/build.gradle diff --git a/buildSrc/src/main/groovy/multiloader-common.gradle b/build-logic/src/main/groovy/multiloader-common.gradle similarity index 96% rename from buildSrc/src/main/groovy/multiloader-common.gradle rename to build-logic/src/main/groovy/multiloader-common.gradle index 6dbd80402..a3f99739a 100644 --- a/buildSrc/src/main/groovy/multiloader-common.gradle +++ b/build-logic/src/main/groovy/multiloader-common.gradle @@ -3,10 +3,6 @@ plugins { id 'maven-publish' } -base { - archivesName = "${mod_id}-${project.name}-${minecraft_version}" -} - java { toolchain.languageVersion = JavaLanguageVersion.of(java_version) withSourcesJar() @@ -92,7 +88,6 @@ processResources { publishing { publications { register('mavenJava', MavenPublication) { - artifactId base.archivesName.get() from components.java } } diff --git a/buildSrc/src/main/groovy/multiloader-loader.gradle b/build-logic/src/main/groovy/multiloader-loader.gradle similarity index 76% rename from buildSrc/src/main/groovy/multiloader-loader.gradle rename to build-logic/src/main/groovy/multiloader-loader.gradle index e025746db..bfd1c32a3 100644 --- a/buildSrc/src/main/groovy/multiloader-loader.gradle +++ b/build-logic/src/main/groovy/multiloader-loader.gradle @@ -2,24 +2,26 @@ plugins { id 'multiloader-common' } +String commonPath = ":$mod_id-common" + configurations { - commonJava{ + commonJava { canBeResolved = true } - commonResources{ + commonResources { canBeResolved = true } } dependencies { - compileOnly(project(':common')) { + compileOnly(project(commonPath)) { def loaderAttribute = Attribute.of('io.github.mcgradleconventions.loader', String) attributes { attribute(loaderAttribute, 'common') } } - commonJava project(path: ':common', configuration: 'commonJava') - commonResources project(path: ':common', configuration: 'commonResources') + commonJava project(path: commonPath, configuration: 'commonJava') + commonResources project(path: commonPath, configuration: 'commonResources') } tasks.named('compileJava', JavaCompile) { diff --git a/build.gradle b/build.gradle index 5eda6771e..8a39f3538 100644 --- a/build.gradle +++ b/build.gradle @@ -3,4 +3,7 @@ plugins { id 'net.fabricmc.fabric-loom' version '1.15.5' apply false // see https://projects.neoforged.net/neoforged/moddevgradle for new versions id 'net.neoforged.moddev' version '2.0.141' apply false -} \ No newline at end of file +} + +group = property("group") +version = property("version") \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index cec86b38c..00e2914d8 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -2,6 +2,7 @@ plugins { id 'multiloader-loader' id 'net.fabricmc.fabric-loom' } + dependencies { minecraft "com.mojang:minecraft:${minecraft_version}" implementation "net.fabricmc:fabric-loader:${fabric_loader_version}" @@ -9,7 +10,7 @@ dependencies { } loom { - def aw = project(':common').file("src/main/resources/${mod_id}.accesswidener") + def aw = project(":$mod_id-common").file("src/main/resources/${mod_id}.accesswidener") if (aw.exists()) { accessWidenerPath.set(aw) } diff --git a/gradle.properties b/gradle.properties index 21ede1370..9dff7b6a5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ # Project version=26.1.2.0 -group=com.example.examplemod +group=com.example java_version=25 # Common diff --git a/neoforge/build.gradle b/neoforge/build.gradle index 52c8da30c..3aacc1d55 100644 --- a/neoforge/build.gradle +++ b/neoforge/build.gradle @@ -6,7 +6,7 @@ plugins { neoForge { version = neoforge_version // Automatically enable neoforge AccessTransformers if the file exists - def at = project(':common').file('src/main/resources/META-INF/accesstransformer.cfg') + def at = project(":$mod_id-common").file('src/main/resources/META-INF/accesstransformer.cfg') if (at.exists()) { accessTransformers.from(at.absolutePath) } diff --git a/settings.gradle b/settings.gradle index 2f0c7e7a4..928628886 100644 --- a/settings.gradle +++ b/settings.gradle @@ -20,8 +20,20 @@ plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' } -// This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606) -rootProject.name = 'MultiLoader-Template' -include('common') -include('fabric') -include('neoforge') +String modId = providers.gradleProperty("mod_id").get() + +rootProject.name = modId + +includeBuild("build-logic") + +rootDir.listFiles().findAll { + it.isDirectory() + && it.name != "build-logic" + && (new File(it, "build.gradle").exists() || new File(it, "build.gradle.kts").exists()) +}.forEach { + String relativePath = rootDir.toPath().relativize(it.toPath()).toString() + String projectName = ":$modId-$relativePath" + + include(projectName) + project(projectName).projectDir = it +}