Files
antarchy-mirror/fabric-1.21.1/build.gradle
T
craisinlord 23599c4c59 bumped required infinity version
fixed server client split issue fr this time
Buffed frying pan
Fixed prince princess anim bug
2026-09-23 20:49:57 -05:00

152 lines
6.5 KiB
Groovy

plugins {
id 'net.fabricmc.fabric-loom-remap'
id "com.matthewprenger.cursegradle" version "1.4.0"
id "me.modmuss50.mod-publish-plugin" version "0.5.1"
}
base {
archivesName = mod_id
}
version = "${mod_version}+1.21.1-fabric"
// Handle duplicates from common-1.21.1's resources
tasks.withType(AbstractCopyTask).configureEach {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
java {
toolchain { languageVersion = JavaLanguageVersion.of(21) }
withSourcesJar()
}
// Add common-1.21.1's sources directly — this module compiles them itself.
sourceSets {
main {
java {
srcDirs project(':common-1.21.1').sourceSets.main.java.srcDirs
}
resources {
srcDir project(':common-1.21.1').sourceSets.main.resources.srcDirs
}
}
}
dependencies {
minecraft "com.mojang:minecraft:1.21.1"
mappings loom.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version_1_21_1}"
modApi "net.fabricmc.fabric-api:fabric-api:${fabric_api_version_1_21_1}"
modImplementation "software.bernie.geckolib:geckolib-fabric-1.21.1:${geckolib_version}"
modImplementation(files("$rootDir/infinite_dimensions_jars/antos-fabric-1.21.1-${antos_version}.jar"))
modCompileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
modLocalRuntime("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
modLocalRuntime("dev.architectury:architectury-fabric:${architectury_api_version}")
compileOnly "mezz.jei:jei-1.21.1-common-api:${jei_version}"
compileOnly "mezz.jei:jei-1.21.1-fabric-api:${jei_version}"
modLocalRuntime "mezz.jei:jei-1.21.1-fabric:${jei_version}"
compileOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.3+1.21.1-neoforge.jar"))
runtimeOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.3+1.21.1-fabric.jar"))
compileOnly(files("$rootDir/infinite_dimensions_jars/gravity-api-1.0.7-1.20.1.jar"))
compileOnly(files("$rootDir/infinite_dimensions_jars/sable-neoforge-1.21.1-2.0.3.jar"))
// Cloth Config — optional, powers the in-game settings screen (AntarchyClothConfigScreenBuilder)
// via the Mod Menu integration below. compileOnly + modLocalRuntime only: never bundled or
// required at runtime in the shipped jar. Guarded by FabricLoader.isModLoaded("cloth-config")
// in AntarchyModMenuIntegration before any Cloth Config class is touched. Reuses the
// clothconfig_curseforge_id/clothconfig_curseforge_file_id pin already in gradle.properties.
modCompileOnly("curse.maven:cloth-config-${clothconfig_curseforge_id}:${clothconfig_curseforge_file_id}")
modLocalRuntime("curse.maven:cloth-config-${clothconfig_curseforge_id}:${clothconfig_curseforge_file_id}")
// Mod Menu — optional, provides the "modmenu" fabric.mod.json entrypoint
// (AntarchyModMenuIntegration). Same soft-dependency treatment as Cloth Config above; Fabric
// Loader only ever resolves the "modmenu" entrypoint if Mod Menu itself is installed and asks
// for it, so nothing here is touched when it's absent. Reuses the mod_menu version already
// pinned in gradle.properties.
modCompileOnly "com.terraformersmc:modmenu:${mod_menu}"
modLocalRuntime "com.terraformersmc:modmenu:${mod_menu}"
// Compile against the NeoForge jar (official Mojang mappings, matches this module's compile
// space) but load the real Fabric jar at runtime — sizeable_foliage's Fabric jar ships
// intermediary-mapped, which this compileOnly classpath can't resolve directly.
compileOnly(files("$rootDir/sizeable_foliage_jars/sizeable_foliage-neoforge-1.21.1-1.0.0.jar"))
runtimeOnly(files("$rootDir/sizeable_foliage_jars/sizeable_foliage-fabric-1.21.1-1.0.0.jar"))
annotationProcessor "org.spongepowered:mixin:0.8.7:processor"
implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixin_extras_1_21_1}"))
}
loom {
mixin {
useLegacyMixinAp = true
defaultRefmapName = "antarchy.mixins.refmap.json"
}
}
tasks.named('processResources', ProcessResources).configure {
var replaceProperties = [
version : project.version,
minecraft_version : "1.21.1",
fabric_loader_version: fabric_loader_version_1_21_1,
architectury_api_version: architectury_api_version,
mod_id : mod_id,
mod_name : mod_name,
mod_description : mod_description,
mod_author : mod_author,
license : license,
homepage_url : homepage_url,
issues_url : issues_url,
sources_url : sources_url,
logo_fabric : logo_fabric
]
inputs.properties replaceProperties
filesMatching('fabric.mod.json') {
expand replaceProperties
}
}
// common-1.21.1's mixins.json ships refmap-free (NeoForge needs no refmap), but Fabric
// does — inject the refmap key into fabric's own copy of the shared file after copying.
tasks.named('processResources', ProcessResources).configure {
doLast {
var commonMixinConfig = new File(destinationDir, 'antarchy-common.mixins.json')
var json = new groovy.json.JsonSlurper().parse(commonMixinConfig)
json.put('refmap', 'antarchy.mixins.refmap.json')
commonMixinConfig.text = groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(json))
}
}
tasks.matching { it.name in ["runClient", "runServer", "runDatagen"] }.configureEach {
doFirst {
def infinityConfigPrefix = "config/common/"
zipTree(rootProject.file("infinite_dimensions_jars/infinity-2.7.3+1.21.1-fabric.jar")).visit { details ->
if (!details.directory && details.relativePath.pathString.startsWith(infinityConfigPrefix)) {
def targetPath = details.relativePath.pathString.substring(infinityConfigPrefix.length())
file("run/config/infinity/${targetPath}").parentFile.mkdirs()
}
}
}
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId = rootProject.group
artifactId = "${mod_id}-fabric-1.21.1"
version = project.version
artifact(project.tasks.named('remapJar'))
artifact(project.tasks.named('remapSourcesJar')) {
classifier = 'sources'
}
pom {
name = "${mod_name} (Fabric 1.21.1)"
description = mod_description
}
}
}
}