plugins { id 'fabric-loom' version '1.11-SNAPSHOT' } sourceCompatibility = targetCompatibility = JavaVersion.VERSION_21 archivesBaseName = project.archives_base_name version = project.mod_version group = project.maven_group repositories { mavenCentral() mavenLocal() maven { url "https://maven.meteordev.org/releases"} maven { url "https://maven.meteordev.org/snapshots" } maven { url "https://maven.seedfinding.com/" } maven { url "https://maven-snapshots.seedfinding.com/" } maven { url 'https://jitpack.io' } maven { url 'https://maven.duti.dev/releases' } } loom { accessWidenerPath = file("src/main/resources/meteor-rejects.accesswidener") } configurations { // configuration that holds jars to include in the jar extraLibs } dependencies { // This will make it work on most platforms. It automatically chooses the right dependencies at runtime. extraLibs('dev.duti.acheong:cubiomes:1.22.3') { transitive = false } extraLibs('dev.duti.acheong:cubiomes:1.22.3:linux64') { transitive = false } extraLibs('dev.duti.acheong:cubiomes:1.22.3:osx') { transitive = false } extraLibs('dev.duti.acheong:cubiomes:1.22.3:windows64') { transitive = false } // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_version}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" modImplementation("meteordevelopment:meteor-client:${project.minecraft_version}-SNAPSHOT") modCompileOnly "meteordevelopment:baritone:${project.baritone_version}-SNAPSHOT" // Apache Commons Text for WordUtils implementation 'org.apache.commons:commons-text:1.10.0' include 'org.apache.commons:commons-text:1.10.0' // seed .locate and ore sim extraLibs('com.seedfinding:mc_math:ffd2edcfcc0d18147549c88cc7d8ec6cf21b5b91') { transitive = false } extraLibs('com.seedfinding:mc_seed:1ead6fcefe7e8de4b3d60cd6c4e993f1e8f33409') { transitive = false } extraLibs('com.seedfinding:mc_core:1.210.0') { transitive = false } extraLibs('com.seedfinding:mc_noise:7e3ba65e181796c4a2a1c8881d840b2254b92962') { transitive = false } extraLibs('com.seedfinding:mc_biome:41a42cb9019a552598f12089059538853e18ec78') { transitive = false } extraLibs('com.seedfinding:mc_terrain:b4246cbd5880c4f8745ccb90e1b102bde3448126') { transitive = false } extraLibs('com.seedfinding:mc_feature:919b7e513cc1e87e029a9cd703fc4e2dc8686229') { transitive = false } // seedcracker api implementation (include('com.github.19MisterX98.SeedcrackerX:seedcrackerx-api:2.10.1')) {transitive = false} // implementation (include('com.github.19MisterX98.SeedcrackerX:seedcrackerx-api:master-SNAPSHOT')) {transitive = false} configurations.implementation.extendsFrom(configurations.extraLibs) } processResources { inputs.property "version", project.version filesMatching("fabric.mod.json") { expand "version": project.version, "mc_version": project.minecraft_version, "gh_hash": (System.getenv("GITHUB_SHA") ?: "") } } jar { from("LICENSE") { rename { "${it}_${project.archivesBaseName}" } } from { configurations.extraLibs.collect { it.isDirectory() ? it : zipTree(it) } } } tasks.withType(Jar) { duplicatesStrategy = DuplicatesStrategy.EXCLUDE } tasks.withType(JavaCompile).configureEach { // ensure that the encoding is set to UTF-8, no matter what the system default is // this fixes some edge cases with special characters not displaying correctly // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html // If Javadoc is generated, this must be specified in that task too. it.options.encoding = "UTF-8" // The Minecraft launcher currently installs Java 8 for users, so your mod probably wants to target Java 8 too // JDK 9 introduced a new way of specifying this that will make sure no newer classes or methods are used. // We'll use that if it's available, but otherwise we'll use the older option. def targetVersion = 21 if (JavaVersion.current().isJava9Compatible()) { it.options.release = targetVersion } }