plugins { id("fabric-loom") version "0.4-SNAPSHOT" 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("5.0.8") apply false } import net.fabricmc.loom.task.RemapJarTask import java.text.SimpleDateFormat sourceCompatibility = targetCompatibility = 1.8 archivesBaseName = "RoughlyEnoughItems" group = "me.shedaniel" version = project.mod_version minecraft { accessWidener = file("src/main/resources/rei.aw") } license { header rootProject.file('HEADER') include '**/*.java' } repositories { maven { url "https://dl.bintray.com/shedaniel/legacy-yarn-updated" } maven { url "https://dl.bintray.com/shedaniel/shedaniel-mods" } } jar { from "LICENSE" } processResources { filesMatching('fabric.mod.json') { expand 'version': project.version } inputs.property "version", project.version } dependencies { minecraft("com.mojang:minecraft:${project.minecraft_version}") mappings("me.shedaniel:legacy-yarn:${project.yarn_version}:v2") modApi("net.fabricmc:fabric-loader:${project.fabricloader_version}") modApi("net.fabricmc.fabric-api:fabric-api:${project.fabric_api}") { exclude(module: "fabric-biomes-v1") } modApi("me.shedaniel.cloth.api:cloth-client-events-v0:${cloth_client_events_v0_version}") { transitive(false) } modApi("me.shedaniel.cloth:config-2:${cloth_config_version}") { exclude(module: "fabric-api") } modApi("me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig1u}") { exclude(module: "fabric-api") } modApi("org.jetbrains:annotations:19.0.0") modCompileOnly("io.github.prospector:modmenu:${modmenu_version}") { transitive(false) } modRuntime("io.github.prospector:modmenu:${modmenu_version}") { transitive(false) } modRuntime("me.shedaniel:SmoothScrollingEverywhere:3.0.3-unstable") { transitive(false) } afterEvaluate { def listAdded = new ArrayList(Arrays.asList((api_exculde as String).split(','))) def eachDep = { dep -> for (apiIncludeDepStr in (api_include as String).split(',')) { if (apiIncludeDepStr.isEmpty()) continue def apiIncludeGroup = apiIncludeDepStr.split(':')[0] def apiIncludeDep = apiIncludeDepStr.split(':')[1] if (dep.module.id.group == apiIncludeGroup && dep.module.id.name.startsWith(apiIncludeDep)) { def version = dep.module.id.version.indexOf('@') >= 0 ? dep.module.id.version.substring(0, dep.module.id.version.indexOf('@')) : dep.module.id.version def mavenDep = "${dep.module.id.group}:${dep.module.id.name}:$version" if (!(mavenDep in listAdded)) { include(mavenDep) { transitive = false } listAdded.add(mavenDep) } break } } } configurations.compile.resolvedConfiguration.firstLevelModuleDependencies.each eachDep configurations.runtimeClasspath.resolvedConfiguration.firstLevelModuleDependencies.each eachDep } } tasks.withType(JavaCompile) { options.encoding = "UTF-8" } task jarFilter(type: net.corda.gradle.jarfilter.JarFilterTask) { jars remapJar 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" ] } } task copyJarFilter(type: Copy) { from jarFilter into "${project.buildDir}/filtered-libs/" rename { "${project.archivesBaseName}-${project.version}.jar" } } task sourcesJar(type: Jar, dependsOn: classes) { classifier("sources") from sourceSets.main.allSource } task remapMavenJar(type: RemapJarTask, dependsOn: jar) { afterEvaluate { input = file("${project.buildDir}/libs/${archivesBaseName}-${version}-dev.jar") archiveName = "${archivesBaseName}-${version}.jar" addNestedDependencies = false } } 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 << "