plugins { `maven-publish` id("org.quiltmc.loom") } val groupid: String by project val jakartaAnnotationVersion: String by project val loaderVersion: String by project val modid: String by project val modVersion: String by project val minecraftVersion: String by project val patchouliVersion: String by project val quiltMappings: String by project val quiltedFabricApiVersion: String by project group = groupid version = "${modVersion}+${minecraftVersion}" base { archivesName = modid } repositories { maven { url = uri("https://maven.blamejared.com") content { includeGroup("vazkii.patchouli") } } } loom { mods { register(modid) { sourceSet("main") } } } dependencies { minecraft("com.mojang:minecraft:${minecraftVersion}") mappings(loom.layered { mappings("org.quiltmc:quilt-mappings:${minecraftVersion}+build.${quiltMappings}:intermediary-v2") officialMojangMappings() }) modImplementation("org.quiltmc:quilt-loader:${loaderVersion}") modImplementation("org.quiltmc.quilted-fabric-api:quilted-fabric-api:${quiltedFabricApiVersion}-${minecraftVersion}") modImplementation("vazkii.patchouli:Patchouli:${patchouliVersion}") { exclude(group = "net.fabricmc", module = "fabric-loader") } compileOnly("jakarta.annotation:jakarta.annotation-api:${jakartaAnnotationVersion}") } java { toolchain { languageVersion.set(JavaLanguageVersion.of(17)) } withJavadocJar() withSourcesJar() } publishing { publications { create("maven") { artifactId = modid from(components["java"]) } } repositories { maven { url = uri("https://mvn.enes.lv/") credentials { username = (findProperty("mvnUsername") ?: System.getenv("MVN_USERNAME")).toString() password = (findProperty("mvnPassword") ?: System.getenv("MVN_PASSWORD")).toString() } } } } tasks.processResources { inputs.property("loader_version", loaderVersion) inputs.property("minecraft_version", minecraftVersion) inputs.property("patchouli_version", patchouliVersion) inputs.property("quilted_fabric_api_version", quiltedFabricApiVersion) inputs.property("version", version) filesMatching("quilt.mod.json") { expand( "loader_version" to loaderVersion, "minecraft_version" to minecraftVersion, "patchouli_version" to patchouliVersion, "quilted_fabric_api_version" to quiltedFabricApiVersion, "version" to version ) } } tasks.withType().configureEach { options.encoding = "UTF-8" options.release = 17 } tasks.javadoc { (options as StandardJavadocDocletOptions).addBooleanOption("html5", true) } tasks.jar { from("LICENSE") { rename { "${it}_${base.archivesName.get()}" } } }