create-air-fabric/build.gradle
2025-01-21 04:32:33 +05:00

142 lines
5.3 KiB
Groovy

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<String, Object> 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.
}
}