plugins { id 'fabric-loom' version '0.11.+' id 'io.github.juuxel.loom-quiltflower' version '1.6.0' id 'org.quiltmc.quilt-mappings-on-loom' version '4.0.0' id 'org.ajoberstar.grgit' version '5.0.0' } sourceCompatibility = '17' targetCompatibility = '17' archivesBaseName = project.archives_base_name version = "${project.mod_version}+${getMetadata()}" group = project.maven_group repositories { maven { name = "Modrinth" url = "https://api.modrinth.com/maven" content { includeGroup "maven.modrinth" } } } var apiModules = [ "fabric-api-base", "fabric-networking-api-v1", "fabric-object-builder-api-v1", "fabric-registry-sync-v0", ] dependencies { // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings loom.layered { it.mappings("net.fabricmc:yarn:${project.minecraft_version}+build.${project.yarn_mappings}:v2") it.addLayer(quiltMappings.mappings("org.quiltmc:quilt-mappings:${project.minecraft_version}+build.${project.quilt_mappings}:v2")) } modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" // Fabric API apiModules.forEach { include modImplementation(fabricApi.module(it, project.fabric_version)) } // Sodium modCompileOnly "maven.modrinth:sodium:${project.sodium_version}" } processResources { inputs.property 'version', project.version filteringCharset 'UTF-8' filesMatching('fabric.mod.json') { expand 'version': project.version } } tasks.withType(JavaCompile) { it.options.encoding = 'UTF-8' } java { withSourcesJar() } jar { from('LICENSE') { rename { "${it}_${project.archivesBaseName}"} } } def getMetadata() { def build_id = System.getenv("GITHUB_RUN_NUMBER") def workflow_id = System.getenv("GITHUB_WORKFLOW") def metadata = project.minecraft_version // Release builds only if (workflow_id == "build-release") { return metadata } if (build_id != null) { metadata += "-build.${build_id}" } else if (grgit != null) { def head = grgit.head() def id = head.abbreviatedId // Flag the build if the build tree is not clean if (!grgit.status().clean) { id += "-dirty" } metadata += "-${id}" } return metadata }