import net.fabricmc.loom.task.RemapJarTask plugins { id 'fabric-loom' version '0.4-SNAPSHOT' id 'java-library' id 'maven-publish' } version = "${project.mod_version}+${project.minecraft_version}" archivesBaseName = project.archives_base_name + "-fabric" minecraft { } repositories { maven { name = 'CottonMC' url = 'http://server.bbkr.space:8081/artifactory/libs-snapshot' } repositories { maven { url = "https://jitpack.io" } } } configurations { shadowInternal shadow api.extendsFrom shadow } dependencies { //to change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" modImplementation "io.github.prospector:modmenu:${project.modmenu_version}" modImplementation "com.github.lambdaurora:spruceui:${project.spruceui_version}" include "com.github.lambdaurora:spruceui:${project.spruceui_version}" // Compatibility mods modImplementation "com.github.joaoh1:okzoomer:4.0.0-alpha.4plus1.1.16.1" modImplementation "me.shedaniel:RoughlyEnoughItems:4.5.5" api project(":core") shadowInternal project(":core") shadow("org.aperlambda:lambdajcommon:1.8.0") { // Minecraft already has all that google crap. exclude group: 'com.google.code.gson' exclude group: 'com.google.guava' } shadow "com.electronwill.night-config:core:3.5.3" shadow "com.electronwill.night-config:toml:3.5.3" } processResources { inputs.property "version", project.version from(sourceSets.main.resources.srcDirs) { include "fabric.mod.json" expand "version": project.version } from(sourceSets.main.resources.srcDirs) { exclude "fabric.mod.json" } } java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 withSourcesJar() } jar { from "../LICENSE" } task shadowJar(type: Jar) { archiveClassifier.set("dev") from sourceSets.main.output from { configurations.shadowInternal.filter { it.getName().contains("lambdacontrols") }.collect { it.isDirectory() ? it : zipTree(it) } } from { configurations.shadow.collect { it.isDirectory() ? it : zipTree(it) } } } task shadowRemapJar(type: RemapJarTask) { dependsOn shadowJar input = file("${project.buildDir}/libs/$archivesBaseName-$version-dev.jar") archiveName = "${archivesBaseName}-${version}.jar" addNestedDependencies = true } // configure the maven publication publishing { publications { mavenJava(MavenPublication) { // add all the jars that should be included when publishing to maven artifact(remapJar) { builtBy remapJar } artifact(sourcesJar) { builtBy remapSourcesJar } } } } shadowJar.dependsOn(":core:jar") build.dependsOn(":core:build") publish.dependsOn(":core:publish")