diff --git a/.gitattributes b/.gitattributes index cc9ea95..d1ac59e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,7 +2,6 @@ *.bat text eol=crlf *.patch text eol=lf *.java text eol=lf -*.gradle text eol=crlf *.png binary *.gif binary *.exe binary 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/build-logic/src/main/groovy/multiloader-common.gradle b/build-logic/src/main/groovy/multiloader-common.gradle new file mode 100644 index 0000000..1d831ec --- /dev/null +++ b/build-logic/src/main/groovy/multiloader-common.gradle @@ -0,0 +1,211 @@ +plugins { + id "idea" + id "java-library" + id "maven-publish" + id "net.neoforged.licenser" +} + +boolean noTag = !providers.environmentVariable("TAG").getOrNull() +boolean isPreviewBuild = providers.environmentVariable("TAG").getOrNull().with { !it || it.matches(".+-.+") } +def buildTime = providers.environmentVariable("BUILD_TIME").orElse(project.provider { new Date().format('yyyyMMddHHmmss') }) +version = providers.environmentVariable("TAG").getOrElse("${minecraft_version}-deveopment") + ( + (isPreviewBuild && noTag) ? "+${providers.environmentVariable("BUILD_NUMBER").map { "build.$it" as String }.orElse(buildTime).get()}" : "" +) + +java { + toolchain.languageVersion = JavaLanguageVersion.of(java_version) + withSourcesJar() + withJavadocJar() +} + +repositories { + mavenCentral() + maven { + name = "Sponge" + url = "https://repo.spongepowered.org/repository/maven-public/" + } + + maven { + name = "NeoForge" + url = "https://maven.neoforged.net/releases/" + } + + maven { + name = "Team Resourceful Maven" + url = "https://maven.teamresourceful.com/repository/maven-public/" + } + + maven { + name = "TerraformersMC" + url = "https://maven.terraformersmc.com/releases/" + } + + maven { + name = "uuid.gg Maven Repository" + url = "https://maven.uuid.gg/releases/" + } + + maven { + name = "Minecraft Forge (Used for Terrablender)" + url = "https://maven.minecraftforge.net/" + } + + maven { + name = "SmartBrainLib (SBL) Maven Repo" + url = "https://dl.cloudsmith.io/public/tslat/sbl/maven/" + } + + maven { + name = "Modrinth" + url = "https://api.modrinth.com/maven/" + content { + includeGroup "maven.modrinth" + } + } +} + +// Declare capabilities on the outgoing configurations. +// Read more about capabilities here: https://docs.gradle.org/current/userguide/component_capabilities.html#sec:declaring-additional-capabilities-for-a-local-component +["apiElements", "runtimeElements", "sourcesElements", "javadocElements"].each { variant -> + configurations."$variant".outgoing { + capability("$group:${project.name}:$version") + capability("$group:${project.name}-${minecraft_version}:$version") + capability("$group:${rootProject.name}:$version") + } + publishing.publications.configureEach { + suppressPomMetadataWarningsFor(variant) + } +} + +sourcesJar { + def mod_id = project.mod_id + from(rootProject.file("LICENSE.md")) { + rename { "LICENSE_${mod_id}.md" } + } +} + +jar { + def mod_id = project.mod_id + from(rootProject.file("LICENSE.md")) { + rename { "LICENSE_${mod_id}.md" } + } + + manifest { + attributes([ + "Specification-Title" : project.mod_name, + "Specification-Vendor" : project.author, + "Specification-Version" : project.provider { project.version }, + "Implementation-Title" : project.name, + "Implementation-Version" : project.provider { project.version }, + "Implementation-Vendor" : project.author, + "Built-On-Java" : "${System.getProperty("java.vm.version")} (${System.getProperty("java.vm.vendor")})", + "Built-On-Minecraft" : project.minecraft_version + ]) + } +} + +processResources { + var expandProperties = [ + "version" : version, + "group" : project.group, + "mod_name" : project.mod_name, + "mod_id" : project.mod_id, + "author" : project.author, + "credits" : project.credits, + "license" : project.license, + "description" : project.description, + + "display_url" : project.display_url, + "discord" : project.discord, + "mod_source" : project.mod_source, + "license_url" : project.license_url, + "modrinth_url" : project.modrinth_url, + "curseforge_url" : project.curseforge_url, + + "java_version" : project.java_version, + "minecraft_version" : project.minecraft_version, + "curseforge_id" : project.curseforge_id, + "modrinth_id" : project.modrinth_id, + + "neoforge_version" : project.neoforge_version, + + "fabric_version" : project.fabric_version, + "fabric_loader_version" : project.fabric_loader_version, + + "smart_brain_lib_neoforge_version" : project.smart_brain_lib_neoforge_version, + "smart_brain_lib_fabric_version" : project.smart_brain_lib_fabric_version, + + "geckolib_neoforge_version" : project.geckolib_neoforge_version, + "geckolib_fabric_version" : project.geckolib_fabric_version, + + "resourceful_config_neoforge_version" : project.resourceful_config_neoforge_version, + "resourceful_config_fabric_version" : project.resourceful_config_fabric_version, + + "terrablender_neoforge_version" : project.terrablender_neoforge_version, + "terrablender_fabric_version" : project.terrablender_fabric_version + ] + + var jsonExpandProperties = expandProperties.collectEntries { + key, value -> [(key): value instanceof String ? value.replace("\n", "\\\\n") : value] + } + + filesMatching(['META-INF/neoforge.mods.toml']) { + expand expandProperties + } + + filesMatching(['pack.mcmeta', 'fabric.mod.json', '*.mixins.json']) { + expand jsonExpandProperties + } + + inputs.properties(expandProperties) +} + +license { + ignoreFailures = true + header = rootProject.file("LICENSE_HEADER.txt") + newLine = false + include "**/*.java" + include "**/*.kt" + exclude "**/package-info.java" + exclude "**/module-info.java" + properties { + name = "KiriCattus" + year = "2013 - " + Calendar.getInstance().get(Calendar.YEAR) + license_link = project.license_url + project_information = license_description + } +} + +tasks.named("assemble").configure{dependsOn "licenseFormat"} + +publishing { + publications { + "mavenJava${project.name}"(MavenPublication) { + from components.java + } + } + repositories { + if (providers.environmentVariable("MAVEN_UPLOAD_URL").isPresent()) { + maven { + url = providers.environmentVariable("MAVEN_UPLOAD_URL").get() + credentials { + username = providers.environmentVariable("MAVEN_UPLOAD_USERNAME").get() + password = providers.environmentVariable("MAVEN_UPLOAD_PASSWORD").get() + } + } + } + } +} + +tasks.withType(JavaCompile).configureEach { + it.options.encoding = "UTF-8" + it.options.release.set(java_version.toInteger()) +} + +// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior. +idea { + module { + downloadSources = true + downloadJavadoc = true + } +} diff --git a/build-logic/src/main/groovy/multiloader-loader.gradle b/build-logic/src/main/groovy/multiloader-loader.gradle new file mode 100644 index 0000000..7601c74 --- /dev/null +++ b/build-logic/src/main/groovy/multiloader-loader.gradle @@ -0,0 +1,41 @@ +plugins { + id "multiloader-common" +} + +configurations { + commonJava { + canBeResolved = true + } + + commonResources { + canBeResolved = true + } +} + +dependencies { + compileOnly(project(":${rootProject.name}-common")) + commonJava project(path: ":${rootProject.name}-common", configuration: "commonJava") + commonResources project(path: ":${rootProject.name}-common", configuration: "commonResources") +} + +tasks.named("compileJava", JavaCompile) { + dependsOn(configurations.commonJava) + source(configurations.commonJava) +} + +processResources { + dependsOn(configurations.commonResources) + from(configurations.commonResources) +} + +tasks.named("javadoc", Javadoc).configure { + dependsOn(configurations.commonJava) + source(configurations.commonJava) +} + +tasks.named("sourcesJar", Jar) { + dependsOn(configurations.commonJava) + from(configurations.commonJava) + dependsOn(configurations.commonResources) + from(configurations.commonResources) +} diff --git a/build.gradle b/build.gradle index aa9b096..2a11cea 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id "net.neoforged.licenser" version "0.7.5" apply false - id "fabric-loom" version "1.9+" apply false - id "net.neoforged.moddev" version "2.0.66-beta" apply false + id "net.neoforged.licenser" version "${licenser_version}" apply false + id "fabric-loom" version "${fabric_loom}" apply false + id "net.neoforged.moddev" version "${moddev_version}" apply false } diff --git a/buildSrc/src/main/groovy/multiloader-common.gradle b/buildSrc/src/main/groovy/multiloader-common.gradle deleted file mode 100644 index f90de15..0000000 --- a/buildSrc/src/main/groovy/multiloader-common.gradle +++ /dev/null @@ -1,225 +0,0 @@ -plugins { - id "idea" - id "java-library" - id "maven-publish" - id "net.neoforged.licenser" -} - -def ENV = System.getenv() -def NOW = new Date(); -def buildTime = ENV.BUILD_TIME ?: NOW.format('yyyyMMddHHmmss') - -boolean isPreviewBuild = !ENV.TAG || ENV.TAG.matches(".+-.+") -def buildNumber = !ENV.TAG ? ("${ENV.BUILD_NUMBER ? "build.${ENV.BUILD_NUMBER}" : buildTime}") : "" -version = (ENV.TAG ?: "${minecraft_version}-development") + ((isPreviewBuild && !ENV.TAG) ? "+${buildNumber}" : "") - -def mod_name = rootProject.name.replaceAll("-", "_").toLowerCase(Locale.ROOT) - -base { - archivesName = "${rootProject.name}-${project.name}" -} - -java { - toolchain.languageVersion = JavaLanguageVersion.of(java_version) - withSourcesJar() - withJavadocJar() -} - -repositories { - mavenCentral() - maven { - name = "Sponge" - url = "https://repo.spongepowered.org/repository/maven-public/" - } - - maven { - name = "NeoForge" - url = "https://maven.neoforged.net/releases/" - } - - maven { - name = "Team Resourceful Maven" - url = "https://maven.teamresourceful.com/repository/maven-public/" - } - - maven { - name = "TerraformersMC" - url = "https://maven.terraformersmc.com/releases/" - } - - maven { - name = "uuid.gg Maven Repository" - url = "https://maven.uuid.gg/releases/" - } - - maven { - name = "Minecraft Forge (Used for Terrablender)" - url = "https://maven.minecraftforge.net/" - } - - maven { - name = "SmartBrainLib (SBL) Maven Repo" - url = "https://dl.cloudsmith.io/public/tslat/sbl/maven/" - } - - maven { - name = "Modrinth" - url = "https://api.modrinth.com/maven/" - content { - includeGroup "maven.modrinth" - } - } -} - -// Declare capabilities on the outgoing configurations. -// Read more about capabilities here: https://docs.gradle.org/current/userguide/component_capabilities.html#sec:declaring-additional-capabilities-for-a-local-component -["apiElements", "runtimeElements", "sourcesElements", "javadocElements"].each { variant -> - configurations."$variant".outgoing { - capability("$group:${base.archivesName.get()}:$version") - capability("$group:$mod_id-${project.name}-${minecraft_version}:$version") - capability("$group:$mod_id:$version") - } - publishing.publications.configureEach { - suppressPomMetadataWarningsFor(variant) - } -} - -sourcesJar { - from(rootProject.file("LICENSE.md")) { - rename { "LICENSE_${mod_name}.md" } - } -} - -jar { - from(rootProject.file("LICENSE.md")) { - rename { "LICENSE_${mod_name}.md" } - } - - manifest { - attributes([ - "Specification-Title" : project.mod_name, - "Specification-Vendor" : project.author, - "Specification-Version" : project.jar.archiveVersion, - "Implementation-Title" : project.name, - "Implementation-Version" : project.jar.archiveVersion, - "Implementation-Vendor" : project.author, - "Implementation-Timestamp" : new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), - "Timestamp" : System.currentTimeMillis(), - "Built-On-Java" : "${System.getProperty("java.vm.version")} (${System.getProperty("java.vm.vendor")})", - "Built-On-Minecraft" : project.minecraft_version - ]) - } -} - -processResources { - var expandProperties = [ - "version" : version, - "group" : project.group, - "mod_name" : project.mod_name, - "mod_id" : project.mod_id, - "author" : project.author, - "credits" : project.credits, - "license" : project.license, - "description" : project.description, - - "display_url" : project.display_url, - "discord" : project.discord, - "mod_source" : project.mod_source, - "license_url" : project.license_url, - "modrinth_url" : project.modrinth_url, - "curseforge_url" : project.curseforge_url, - - "java_version" : project.java_version, - "minecraft_version" : project.minecraft_version, - "minecraft_version_range" : project.minecraft_version_range, - "curseforge_id" : project.curseforge_id, - "modrinth_id" : project.modrinth_id, - - "neoforge_version" : project.neoforge_version, - "neoforge_version_range" : project.neoforge_version_range, - "fancy_mod_loader_version" : project.fancy_mod_loader_version, - "fancy_mod_loader_version_range" : project.fancy_mod_loader_version_range, - - "fabric_version" : project.fabric_version, - "fabric_version_range" : project.fabric_version_range, - "fabric_loader_version" : project.fabric_loader_version, - "fabric_loader_version_range" : project.fabric_loader_version_range, - - "smart_brain_lib_neoforge_version" : project.smart_brain_lib_neoforge_version, - "smart_brain_lib_fabric_version" : project.smart_brain_lib_fabric_version, - - "geckolib_neoforge_version" : project.geckolib_neoforge_version, - "geckolib_fabric_version" : project.geckolib_fabric_version, - - "resourceful_config_neoforge_version" : project.resourceful_config_neoforge_version, - "resourceful_config_fabric_version" : project.resourceful_config_fabric_version, - - "terrablender_neoforge_version" : project.terrablender_neoforge_version, - "terrablender_fabric_version" : project.terrablender_fabric_version - ] - - var jsonExpandProperties = expandProperties.collectEntries { - key, value -> [(key): value instanceof String ? value.replace("\n", "\\\\n") : value] - } - - filesMatching(['META-INF/neoforge.mods.toml']) { - expand expandProperties - } - - filesMatching(['pack.mcmeta', 'fabric.mod.json', '*.mixins.json']) { - expand jsonExpandProperties - } - - inputs.properties(expandProperties) -} - -license { - ignoreFailures = true - header = rootProject.file("LICENSE_HEADER.txt") - newLine = false - include "**/*.java" - include "**/*.kt" - exclude "**/package-info.java" - exclude "**/module-info.java" - properties { - name = "KiriCattus" - year = "2013 - " + Calendar.getInstance().get(Calendar.YEAR) - license_link = project.license_url - project_information = license_description - } -} - -tasks.named("assemble").configure{dependsOn "licenseFormat"} - -publishing { - publications { - "mavenJava${project.name}"(MavenPublication) { - artifactId "${rootProject.name}-${project.name}" - from components.java - } - } - repositories { - if (ENV.MAVEN_UPLOAD_URL) { - maven { - url = ENV.MAVEN_UPLOAD_URL - credentials { - username = ENV.MAVEN_UPLOAD_USERNAME - password = ENV.MAVEN_UPLOAD_PASSWORD - } - } - } - } -} - -tasks.withType(JavaCompile).configureEach { - it.options.encoding = "UTF-8" - it.options.release.set(java_version.toInteger()) -} - -// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior. -idea { - module { - downloadSources = true - downloadJavadoc = true - } -} diff --git a/buildSrc/src/main/groovy/multiloader-loader.gradle b/buildSrc/src/main/groovy/multiloader-loader.gradle deleted file mode 100644 index 4d48a7d..0000000 --- a/buildSrc/src/main/groovy/multiloader-loader.gradle +++ /dev/null @@ -1,45 +0,0 @@ -plugins { - id "multiloader-common" -} - -configurations { - commonJava { - canBeResolved = true - } - - commonResources { - canBeResolved = true - } -} - -dependencies { - compileOnly(project(":common")) { - capabilities { - requireCapability "$group:$mod_id" - } - } - commonJava project(path: ":common", configuration: "commonJava") - commonResources project(path: ":common", configuration: "commonResources") -} - -tasks.named("compileJava", JavaCompile) { - dependsOn(configurations.commonJava) - source(configurations.commonJava) -} - -processResources { - dependsOn(configurations.commonResources) - from(configurations.commonResources) -} - -tasks.named("javadoc", Javadoc).configure { - dependsOn(configurations.commonJava) - source(configurations.commonJava) -} - -tasks.named("sourcesJar", Jar) { - dependsOn(configurations.commonJava) - from(configurations.commonJava) - dependsOn(configurations.commonResources) - from(configurations.commonResources) -} diff --git a/fabric/build.gradle b/fabric/build.gradle index 7854502..c04540b 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -23,7 +23,7 @@ dependencies { } loom { - def aw = project(":common").file("src/main/resources/META-INF/${mod_id}.accesswidener") + def aw = project(":${project.rootProject.name}-common").file("src/main/resources/META-INF/${mod_id}.accesswidener") if (aw.exists()) { accessWidenerPath.set(aw) } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index aeb27b3..54b40a1 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -25,7 +25,7 @@ }, "accessWidener": "META-INF/${mod_id}.accesswidener", "depends": { - "fabricloader": "${fabric_loader_version_range}", + "fabricloader": ">=${fabric_loader_version}", "fabric": "*", "minecraft": "${minecraft_version}", "smartbrainlib": ">=${smart_brain_lib_fabric_version}", diff --git a/gradle.properties b/gradle.properties index f42c100..3cfbd84 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,6 @@ curseforge_url = https://www.curseforge.com/minecraft/mc-mods/kiris-mod-template # Common java_version = 21 minecraft_version = 1.21.1 -minecraft_version_range = [1.21,) parchment_minecraft = 1.21.1 parchment_version = 2024.11.17 modrinth_id = SrAIvfzS @@ -29,18 +28,16 @@ curseforge_id = 280003 # See https://projects.neoforged.net/neoforged/moddevgradle for new versions # See https://parchmentmc.org/docs/getting-started#choose-a-version for new versions neoforge_version = 21.1.92 -neoforge_version_range = [21.1,) -fancy_mod_loader_version = 4.0.38 -fancy_mod_loader_version_range = [4,) neo_form_version = 1.21.1-20240808.144430 +moddev_version = 2.0.112 +licenser_version = 0.7.5 + # Fabric # See https://fabricmc.net/develop/ for new versions -fabric_loom = 1.9-SNAPSHOT +fabric_loom = 1.11.8 fabric_version = 0.114.0 -fabric_version_range = >=0.114.0 fabric_loader_version = 0.16.9 -fabric_loader_version_range = >=0.16 # Dependencies # - Common @@ -68,5 +65,6 @@ modmenu_version = 11.0.3 # Gradle org.gradle.jvmargs = -Xmx3G -org.gradle.daemon = false org.gradle.debug = false +org.gradle.configuration-cache = true +org.gradle.parallel = true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 943f0cb..8bdaf60 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index cea7a79..2e11132 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 index f5feea6..adff685 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -173,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -206,15 +203,14 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9d21a21..c4bdd3a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml index 9f6ef73..a0c4757 100644 --- a/neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -1,5 +1,3 @@ -modLoader = "javafml" #mandatory -loaderVersion = "[1,)" #mandatory license = "${license_url}" # Review your options at https://choosealicense.com/. issueTrackerURL = "${mod_source}/issues" #optional @@ -16,14 +14,14 @@ description = '''${description}''' #mandatory (Supports multiline text) [[dependencies.${mod_id}]] #optional modId = "neoforge" #mandatory type = "required" -versionRange = "${neoforge_version_range}" #mandatory +versionRange = "[${neoforge_version},)" #mandatory ordering = "NONE" # The order that this dependency should load in relation to your mod, required to be either 'BEFORE' or 'AFTER' if the dependency is not mandatory side = "BOTH" # Side this dependency is applied on - 'BOTH', 'CLIENT' or 'SERVER' [[dependencies.${mod_id}]] modId = "minecraft" type = "required" -versionRange = "${minecraft_version_range}" +versionRange = "[${minecraft_version},)" ordering = "NONE" side = "BOTH" diff --git a/settings.gradle b/settings.gradle index 72bb451..0610616 100644 --- a/settings.gradle +++ b/settings.gradle @@ -14,19 +14,24 @@ pluginManagement { } } filter { - includeGroup("net.fabricmc") + includeGroupAndSubgroups("net.fabricmc") includeGroup("fabric-loom") } } } + + includeBuild("build-logic") } plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '0.9.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 = "kiris-mod-template" -include("common") -include("fabric") -include("neoforge") +// This should match the mod ID so that the published coordinates can be sensible +rootProject.name = "kiricattustemplate" +include(":${rootProject.name}-common") +project(":${rootProject.name}-common").projectDir = file("common") +include(":${rootProject.name}-fabric") +project(":${rootProject.name}-fabric").projectDir = file("fabric") +include(":${rootProject.name}-neoforge") +project(":${rootProject.name}-neoforge").projectDir = file("neoforge")