import net.fabricmc.loom.task.RemapJarTask import java.text.SimpleDateFormat plugins { id 'fabric-loom' version '0.2.6-SNAPSHOT' id 'maven-publish' id 'net.minecrell.licenser' version '0.4.1' id 'com.matthewprenger.cursegradle' version '1.4.0' } sourceCompatibility = targetCompatibility = 1.8 archivesBaseName = "RoughlyEnoughItems" group = "me.shedaniel" def forceVersion = "" version = forceVersion != "" ? forceVersion : ((project.mod_version as String).contains("unstable") ? (project.mod_version + "." + buildTime()) : project.mod_version) def includeDep = true minecraft { } static def buildTime() { def df = new SimpleDateFormat("yyyyMMddHHmm") df.setTimeZone(TimeZone.getTimeZone("UTC")) return df.format(new Date()) } license { header rootProject.file('HEADER') include '**/*.java' } repositories { } 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("net.fabricmc:yarn:${project.yarn_version}:v2") modApi("net.fabricmc:fabric-loader:${project.fabricloader_version}") modApi("net.fabricmc.fabric-api:fabric-api:${project.fabric_api}") modApi("me.shedaniel.cloth:cloth-events:${cloth_events_version}") { transitive = false } modImplementation("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:18.0.0") modCompileOnly("io.github.prospector:modmenu:${modmenu_version}") { transitive = false } modRuntime("io.github.prospector:modmenu:${modmenu_version}") { transitive = false } if (includeDep) { afterEvaluate { def listAdded = new ArrayList(Arrays.asList((api_exculde as String).split(','))) def eachDep = { dep -> for (apiIncludeDepStr in (api_include as String).split(',')) { 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 } } } task sourcesJar(type: Jar, dependsOn: classes) { classifier = "sources" from sourceSets.main.allSource } task remapMavenJar(type: RemapJarTask, dependsOn: jar) { // classifier = "maven" afterEvaluate { //noinspection GroovyAccessibility input = file("${project.buildDir}/libs/${archivesBaseName}-${version}-dev.jar") archiveName = "${archivesBaseName}-${version}.jar" //noinspection GroovyAccessibility addNestedDependencies = false } } 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 = '310111' releaseType = 'beta' changelogType = "html" def df = new SimpleDateFormat("yyyy-MM-dd HH:mm") df.setTimeZone(TimeZone.getTimeZone("UTC")) def time = df.format(new Date()) changelog = "