buildscript { repositories { maven { url = 'https://files.minecraftforge.net/maven' } maven { url "https://dist.creeper.host/Sponge/maven" } jcenter() mavenCentral() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true } } plugins { id("maven-publish") id("java") id("java-library") id("net.minecrell.licenser") version("0.4.1") id("com.matthewprenger.cursegradle") version("1.4.0") id("net.corda.plugins.jar-filter") version("4.0.48") apply false id("com.github.johnrengelman.shadow") version("4.0.4") apply false id("com.jfrog.bintray") version("1.8.4") } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'maven-publish' apply plugin: 'maven' apply plugin: 'net.minecrell.licenser' apply plugin: 'net.corda.plugins.jar-filter' apply plugin: 'com.github.johnrengelman.shadow' import java.text.SimpleDateFormat archivesBaseName = "RoughlyEnoughItems-Forge" version = project.mod_version + "+" + buildTime() group = "me.shedaniel" def buildTime() { def df = new SimpleDateFormat("yyyyMMdd-HHmm") df.setTimeZone(TimeZone.getTimeZone("UTC")) return df.format(new Date()) } sourceSets { main { java { srcDir 'RoughlyEnoughItems-api/src/main/java' srcDir 'RoughlyEnoughItems-default-plugin/src/main/java' srcDir 'RoughlyEnoughItems-runtime/src/main/java' } resources { srcDir 'RoughlyEnoughItems-runtime/src/main/resources' } } } sourceCompatibility = targetCompatibility = 1.8 configurations { shadow } repositories { maven { url "https://dl.bintray.com/shedaniel/autoconfig1u" } mavenLocal() maven { url "https://dl.bintray.com/shedaniel/cloth-config-2" } } afterEvaluate { processResources { filesMatching('META-INF/mods.toml') { expand 'version': project.version } inputs.property "version", project.version } license { header rootProject.file('HEADER') include '**/*.java' } jar { from rootProject.file("LICENSE") } } minecraft { mappings channel: 'official', version: rootProject.minecraft_version accessTransformer = rootProject.file('src/main/resources/META-INF/accesstransformer.cfg') runs { client { workingDirectory project.file('run') mods { create(project.name) { source sourceSets.main } } } server { workingDirectory project.file('run') mods { create(project.name) { source sourceSets.main } } } } } dependencies { minecraft("net.minecraftforge:forge:${project.minecraft_version}-${project.forge_version}") compile(fg.deobf("me.shedaniel.cloth:cloth-config-forge:${cloth_config_version}")) runtimeOnly(fg.deobf("me.shedaniel:autoconfig1u-forge:${autoconfig1u}")) { transitive = false } compileOnly("me.shedaniel:autoconfig1u-forge:${autoconfig1u}") { transitive = false } shadow("me.shedaniel:autoconfig1u-forge:${autoconfig1u}") { transitive = false } compile("org.jetbrains:annotations:19.0.0") } tasks.withType(JavaCompile) { options.encoding = "UTF-8" } task jarFilter(type: net.corda.gradle.jarfilter.JarFilterTask) { jars build annotations { forRemove = [ "org.jetbrains.annotations.NotNull", "org.jetbrains.annotations.Nullable", "org.jetbrains.annotations.ApiStatus\$Experimental", "org.jetbrains.annotations.ApiStatus\$Internal", "org.jetbrains.annotations.ApiStatus\$ScheduledForRemoval", "org.jetbrains.annotations.ApiStatus\$AvailableSince", "org.jetbrains.annotations.ApiStatus\$NonExtendable", "org.jetbrains.annotations.ApiStatus\$OverrideOnly" ] } } shadowJar { relocate("me.shedaniel.autoconfig1u", "me.shedaniel.rei.shadowed.me.shedaniel.autoconfig1u") setConfigurations([project.configurations.getByName("shadow")]) classifier(null) } reobf { shadowJar {} } task deobfJar(type: Jar, dependsOn: 'jar') { from "build/source/main" classifier "dev" } artifacts { archives deobfJar } task sourceJar(type: Jar, dependsOn: classes) { from sourceSets.main.allJava classifier "sources" } artifacts { archives sourceJar } task javadocJar(type: Jar, dependsOn: 'javadoc') { from "build/docs/javadoc" javadoc.failOnError false classifier "javadoc" } artifacts { archives javadocJar } jar.finalizedBy('reobfJar') task copyJarFilter(type: Copy) { from jarFilter into "${project.buildDir}/filtered-libs/" rename { "${project.archivesBaseName}-${project.version}.jar" } } 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 << "