plugins { id "fabric-loom" version "1.9-SNAPSHOT" id "io.github.p03w.machete" version "1.+" // automatic jar compressing on build id 'maven-publish' } sourceCompatibility = JavaVersion.VERSION_17 base.archivesName = archives_base_name group = project.maven_group String buildNumber = System.getenv("RUN_NUMBER") version = "${mod_version}+${minecraft_version}" + (buildNumber != null ? "-${buildNumber}" : "") repositories { // Add repositories to retrieve artifacts from in here. // You should only use this when depending on other mods because // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. // See https://docs.gradle.org/current/userguide/declaring_repositories.html // for more information about repositories. maven { url = "https://maven.shedaniel.me/" } // Cloth Config, REI maven { url = "https://maven.blamejared.com" } // JEI maven { name = 'ParchmentMC' url = 'https://maven.parchmentmc.org' } maven { url = "https://maven.quiltmc.org/repository/release" } // Quilt Mappings maven { url = "https://api.modrinth.com/maven" } // LazyDFU maven { url = "https://maven.terraformersmc.com/releases/" } // Mod Menu maven { url = "https://cursemaven.com" } // Forge Config API Port maven { url = "https://maven.jamieswhiteshirt.com/libs-release" } // Reach Entity Attributes maven { // Fabric ASM for Porting Lib url = "https://jitpack.io/" content { includeGroupAndSubgroups("com.github") } } maven { url = "https://maven.tterrag.com/" } // Flywheel maven { url = "https://mvn.devos.one/snapshots/" } // Create and several dependencies maven { url = "https://mvn.devos.one/releases/" } // Porting Lib releases maven { url = "https://raw.githubusercontent.com/Fuzss/modresources/main/maven" } // Forge Config API Port exclusiveContent { forRepository { maven { name = "Modrinth" url = "https://api.modrinth.com/maven" } } filter { includeGroup "maven.modrinth" } } } dependencies { // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings(loom.layered { it.mappings("org.quiltmc:quilt-mappings:${minecraft_version}+build.${qm_version}:intermediary-v2") it.parchment("org.parchmentmc.data:parchment-${minecraft_version}:${parchment_version}@zip") it.officialMojangMappings { nameSyntheticMembers = false } }) modImplementation("net.fabricmc:fabric-loader:${fabric_loader_version}") // Fabric API. This is technically optional, but you probably want it anyway. modImplementation("net.fabricmc.fabric-api:fabric-api:${fabric_api_version}") // Create - dependencies are added transitively modImplementation("com.simibubi.create:create-fabric-${minecraft_version}:${create_version}") // Thin Air modImplementation("maven.modrinth:thin-air:${thinair_version}") // Ad Astra modImplementation("maven.modrinth:ad-astra:${adastra_version}") modImplementation("maven.modrinth:botarium:${botarium_version}") // Development QOL modLocalRuntime("maven.modrinth:lazydfu:${lazydfu_version}") modLocalRuntime("com.terraformersmc:modmenu:${modmenu_version}") include(implementation(annotationProcessor("io.github.llamalad7:mixinextras-fabric:0.4.1"))) // Recipe Viewers - Create Fabric supports JEI, REI, and EMI. // See root gradle.properties to choose which to use at runtime. switch (recipe_viewer.toLowerCase(Locale.ROOT)) { case "jei": modLocalRuntime("mezz.jei:jei-$minecraft_version-fabric:$jei_version"); break case "rei": modLocalRuntime("me.shedaniel:RoughlyEnoughItems-fabric:$rei_version"); break case "emi": modLocalRuntime("dev.emi:emi-fabric:$emi_version"); break case "disabled": break default: println("Unknown recipe viewer specified: $recipe_viewer. Must be JEI, REI, EMI, or disabled.") } } processResources { // require dependencies to be the version compiled against or newer Map properties = [ "version": version, "fabric_loader_version": fabric_loader_version, "fabric_api_version": fabric_api_version, "create_version": create_version, "minecraft_version": minecraft_version ] inputs.properties(properties) filesMatching("fabric.mod.json") { expand properties } } tasks.withType(JavaCompile).configureEach { it.options.encoding = "UTF-8" it.options.release = Integer.parseInt(sourceCompatibility) } java { withSourcesJar() } jar { from("LICENSE") { rename { "${it}_${project.archivesBaseName}"} } } // configure the maven publication publishing { publications { mavenJava(MavenPublication) { from components.java } } // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. repositories { // Add repositories to publish to here. // Notice: This block does NOT have the same function as the block in the top level. // The repositories here will be used for publishing your artifact, not for // retrieving dependencies. } }