plugins { id 'fabric-loom' version '0.6-SNAPSHOT' id 'java-library' id 'maven-publish' id 'com.github.johnrengelman.shadow' id 'org.cadixdev.licenser' } import net.fabricmc.loom.task.RemapJarTask version = "${project.mod_version}+${getMCVersionString()}" archivesBaseName = project.archives_base_name + "-fabric" def getMCVersionString() { if (project.minecraft_version.matches("\\d\\dw\\d\\d[a-z]")) { return project.minecraft_version } int lastDot = project.minecraft_version.lastIndexOf('.') return project.minecraft_version.substring(0, lastDot) } minecraft { } repositories { maven { name = 'CottonMC' url = 'http://server.bbkr.space:8081/artifactory/libs-snapshot' } repositories { maven { url = "https://jitpack.io" } } maven { url "https://maven.shedaniel.me/" } } 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}:v2" 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:e13183c59b" modImplementation "me.shedaniel:RoughlyEnoughItems:5.10.184" api project(":core") shadow project(":core") shadow "com.electronwill.night-config:core:3.6.3" shadow "com.electronwill.night-config:toml:3.6.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" } license { header file('HEADER') include '**/*.java' } shadowJar { dependsOn jar configurations = [project.configurations.shadow] archiveClassifier.set('dev') exclude 'META-INF/maven/**' exclude 'com/google/**' exclude 'javax/**' exclude 'org/**' relocate 'com.electronwill.nightconfig', 'dev.lambdaurora.lambdacontrols.shadow.nightconfig' } 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")