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 << "

REI v$project.version for $project.supported_version

Updated at $time.
Click here for changelog" def proc = "git log --max-count=200 --pretty=format:%s".execute() proc.in.eachLine { line -> def processedLine = line.toString() if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) { changes << "
- ${processedLine.capitalize()}" } } proc.waitFor() releaseChangelog = changes.toString() dependsOn tasks.getByName("curseforge") } curseforge { if (project.hasProperty('danielshe_curse_api_key') || System.getenv('danielshe_curse_api_key') != null) { apiKey = project.hasProperty('danielshe_curse_api_key') ? project.property('danielshe_curse_api_key') : System.getenv('danielshe_curse_api_key') project { id = "392060" releaseType = "release" changelogType = "html" changelog = releaseChangelog addGameVersion "1.16.2" addGameVersion "1.16.3" addGameVersion "1.16.4" addGameVersion "1.16.5" addGameVersion "Java 8" addGameVersion "Forge" relations { embeddedLibrary "cloth-config-forge" } mainArtifact(file("${project.buildDir}/libs/${project.archivesBaseName}-${project.version}.jar")) { displayName = "[Forge $project.supported_version] v$project.version" } } } options { forgeGradleIntegration = false javaVersionAutoDetect = false } } publishing { publications { mavenJava(MavenPublication) { artifact(file("${project.buildDir}/libs/${project.archivesBaseName}-${project.version}.jar")) { builtBy build } artifact sourceJar artifact javadocJar } } } bintray { user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER') key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_KEY') publications = ["mavenJava"] publish = true pkg { repo = "cloth" name = "RoughlyEnoughItems" userOrg = "shedaniel" licenses = ["MIT"] version { vcsUrl = 'https://github.com/shedaniel/RoughlyEnoughItems.git' } } }