plugins { id("forgified-fabric-loom") version("0.6.66") apply false id("maven-publish") id("java") id("java-library") id("net.minecrell.licenser") version("0.4.1") id("com.matthewprenger.cursegradle") version("1.4.0") } import net.fabricmc.loom.task.RemapJarTask import java.text.SimpleDateFormat archivesBaseName = "RoughlyEnoughItems" def runNumber = (System.getenv("GITHUB_RUN_NUMBER") == null ? "9999" : System.getenv("GITHUB_RUN_NUMBER")) version = rootProject.base_version + "." + runNumber group = "me.shedaniel" allprojects { apply plugin: 'maven-publish' apply plugin: 'forgified-fabric-loom' apply plugin: 'net.minecrell.licenser' sourceCompatibility = targetCompatibility = 1.8 loom { silentMojangMappingsLicense() // shareCaches = true } repositories { maven { url "https://maven.shedaniel.me" } maven { url "https://maven.terraformersmc.com/releases" } } processResources { filesMatching('fabric.mod.json') { expand 'version': project.version } inputs.property "version", project.version } license { header rootProject.file('HEADER') include '**/*.java' } jar { from rootProject.file("LICENSE") } dependencies { minecraft("com.mojang:minecraft:${project.minecraft_version}") mappings(loom.officialMojangMappings()) modApi("net.fabricmc:fabric-loader:${project.fabricloader_version}") modApi(fabricApi.module("fabric-api-base", project.fabric_api)) include(fabricApi.module("fabric-api-base", project.fabric_api)) modApi(fabricApi.module("fabric-resource-loader-v0", project.fabric_api)) modApi(fabricApi.module("fabric-networking-v0", project.fabric_api)) modApi(fabricApi.module("fabric-lifecycle-events-v1", project.fabric_api)) modApi(fabricApi.module("fabric-rendering-fluids-v1", project.fabric_api)) modRuntime("net.fabricmc.fabric-api:fabric-api:${project.fabric_api}") modApi("me.shedaniel.cloth.api:cloth-client-events-v0:${cloth_client_events_v0_version}") { transitive(false) } include("me.shedaniel.cloth.api:cloth-client-events-v0:${cloth_client_events_v0_version}") { transitive(false) } modApi("me.shedaniel.cloth:cloth-config-fabric:${cloth_config_version}") { exclude(module: "fabric-api") } modApi("org.jetbrains:annotations:19.0.0") modCompileOnly("com.terraformersmc:modmenu:${modmenu_version}") { transitive(false) } modRuntime("com.terraformersmc:modmenu:${modmenu_version}") { transitive(false) } modRuntime("me.shedaniel:SmoothScrollingEverywhere:3.0.3-unstable") { transitive(false) } } tasks.withType(JavaCompile) { options.encoding = "UTF-8" } task sourcesJar(type: Jar, dependsOn: classes) { classifier("sources") from sourceSets.main.allSource } } subprojects { group = rootProject.group version = rootProject.version task remapMavenJar(type: Copy, dependsOn: remapJar) { afterEvaluate { from("${project.buildDir}/libs/$archivesBaseName-${version}.jar") into("${project.buildDir}/libs/") rename { String fn -> "$archivesBaseName-${version}-maven.jar" } } } configurations { dev remapped } jar { classifier("dev") } remapJar { classifier(null) } artifacts { dev file: file("${project.buildDir}/libs/$archivesBaseName-${version}-dev.jar"), type: "jar", builtBy: jar remapped file: file("${project.buildDir}/libs/$archivesBaseName-${version}.jar"), type: "jar", builtBy: remapJar } publishing { publications { create("${archivesBaseName}_mavenJava", MavenPublication) { afterEvaluate { artifact(file("${project.buildDir}/libs/$archivesBaseName-${version}-maven.jar")) { builtBy remapMavenJar } artifact(sourcesJar) { builtBy remapSourcesJar } } } } repositories { if (System.getenv("MAVEN_PASS") != null) { maven { url = "https://deploy.shedaniel.me/" credentials { username = "shedaniel" password = System.getenv("MAVEN_PASS") } } } } } } task licenseFormatAll subprojects { licenseFormatAll.dependsOn("${path}:licenseFormat") } subprojects { rootProject.remapJar.dependsOn("${path}:remapJar") } task remapMavenJar(type: RemapJarTask, dependsOn: jar) { input.set(file("${project.buildDir}/libs/${archivesBaseName}-${version}-dev.jar")) archiveName = "${archivesBaseName}-${version}-maven.jar" addNestedDependencies.set(false) } dependencies { subprojects.each { compile project(path: ":${it.name}", configuration: "dev") include project(path: ":${it.name}", configuration: "remapped") } } def releaseChangelog = "No changelog" /* Thank you modmenu & fablabs */ task releaseOnCf { def df = new SimpleDateFormat("yyyy-MM-dd HH:mm") df.setTimeZone(TimeZone.getTimeZone("UTC")) def branch if (System.env.BRANCH_NAME) { branch = System.env.BRANCH_NAME branch = branch.substring(branch.lastIndexOf("/") + 1) } else { branch = "git rev-parse --abbrev-ref HEAD".execute().in.text.trim() } if (branch == "HEAD") { branch = "git rev-parse --short HEAD".execute().in.text.trim() } def time = df.format(new Date()) def changes = new StringBuilder() changes << "