plugins { id "java-library" id "maven-publish" } allprojects { apply plugin: "java-library" apply plugin: "maven-publish" group = rootProject.maven_group repositories { maven { url "https://maven.fabricmc.net/" } maven { url "https://maven.neoforged.net/releases" } mavenCentral() maven { url = 'https://maven.quiltmc.org/repository/release' } maven { url = 'https://maven.cafeteria.dev/releases' content { includeGroup 'dev.cafeteria' } } exclusiveContent { forRepository { maven { name = "GeckoLib" url = "https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/" } } filter { includeGroup("software.bernie.geckolib") } } maven { url "https://nexus.resourcefulbees.com/repository/telepathicgrunt/" } maven { url "https://maven.shedaniel.me" } maven { url "https://jitpack.io" } maven { url "https://www.cursemaven.com" } maven { url "https://api.modrinth.com/maven/" } maven { url "https://maven.blamejared.com" } } tasks.withType(JavaCompile) { options.encoding = "UTF-8" } java { withSourcesJar() } } // Don't build the root project itself. tasks.named('jar') { enabled = false } // Delegate forge-1.20.1 tasks to its own Gradle 8.8 wrapper. ForgeGradle 6 can't run // on Gradle 9 and includeBuild can't mix Gradle versions, so we shell out instead. def forge1201Dir = file('forge-1.20.1') def forge1201Wrapper = providers.systemProperty('os.name').get().toLowerCase().contains('win') ? new File(forge1201Dir, 'gradlew.bat') : new File(forge1201Dir, 'gradlew') ['build', 'assemble', 'clean', 'runClient', 'runServer'].each { name -> tasks.register("forge1201${name.capitalize()}", Exec) { group = 'forge-1.20.1' description = "Runs ':${name}' inside the forge-1.20.1 build" workingDir = forge1201Dir commandLine forge1201Wrapper.absolutePath, name } } // Delegate fabric-1.20.1 tasks to its own standalone Gradle wrapper. Fabric Loom's // build-wide tinyRemapperService isn't classloader-safe across two loom projects // targeting different Minecraft versions in the same Gradle invocation, so // fabric-1.20.1 can't be a normal included subproject alongside fabric-1.21.1. def fabric120Dir = file('fabric-1.20.1') def fabric120Wrapper = providers.systemProperty('os.name').get().toLowerCase().contains('win') ? new File(fabric120Dir, 'gradlew.bat') : new File(fabric120Dir, 'gradlew') ['build', 'assemble', 'clean', 'runClient', 'runServer'].each { name -> tasks.register("fabric120${name.capitalize()}", Exec) { group = 'fabric-1.20.1' description = "Runs ':${name}' inside the fabric-1.20.1 build" workingDir = fabric120Dir commandLine fabric120Wrapper.absolutePath, name } }