plugins { id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' } version = project.mod_version group = project.maven_group base { archivesName = project.archives_base_name } repositories { maven { url = "https://maven.terraformersmc.com" } maven { url = "https://maven.architectury.dev" } maven { name = "Ladysnake Libs" url = 'https://maven.ladysnake.org/releases' } } sourceSets { testmod { compileClasspath += main.compileClasspath runtimeClasspath += main.runtimeClasspath } } loom { accessWidenerPath = file("src/main/resources/trinkets.accesswidener") runs { testmodClient { client() name = "Testmod Client" source sourceSets.testmod } } } dependencies { // Base Fabric dependencies minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" // Mod dependencies modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" modApi include("org.ladysnake.cardinal-components-api:cardinal-components-base:${project.cca_version}") modApi include("org.ladysnake.cardinal-components-api:cardinal-components-entity:${project.cca_version}") // Optional mod dependencies modCompileOnly "me.shedaniel:RoughlyEnoughItems-api-fabric:${project.rei_version}" modCompileOnly "me.shedaniel:RoughlyEnoughItems-default-plugin-fabric:${project.rei_version}" modCompileOnly "me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}" modCompileOnly "dev.emi:emi-fabric:${emi_version}:api" // Dev Runtime testmodImplementation sourceSets.main.output //modLocalRuntime "dev.emi:emi-fabric:${emi_version}" //modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}" //modLocalRuntime "com.terraformersmc:modmenu:${project.mod_menu_version}" } processResources { inputs.property "version", project.version filesMatching("fabric.mod.json") { expand "version": project.version } } 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" // Minecraft 1.20.5 upwards uses Java 21. it.options.release = 21 } java { // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task // if it is present. // If you remove this line, sources will not be generated. withSourcesJar() sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 } jar { from("LICENSE") { rename { "${it}_${project.archivesBaseName}"} } } // configure the maven publication publishing { publications { mavenJava(MavenPublication) { from components.java } } setupRepositories(repositories) } void setupRepositories(RepositoryHandler repositories) { if (project.hasProperty("mavenUrl")) { repositories.maven { url project.mavenUrl credentials { username project.mavenUsername password project.mavenPassword } } } }