buildscript { repositories { mavenCentral() maven { name = "Modmuss50" url = "https://maven.modmuss50.me/" } maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "net.fabricmc:fabric-loom:0.2.5-SNAPSHOT" classpath "gradle.plugin.net.minecrell:licenser:0.2.1" classpath 'de.undercouch:gradle-download-task:3.4.3' classpath "com.wynprice.cursemaven:CurseMaven:1.2.2" } } apply plugin: net.fabricmc.loom.LoomGradlePlugin apply plugin: 'maven' apply plugin: 'maven-publish' apply plugin: net.minecrell.gradle.licenser.Licenser apply plugin: 'de.undercouch.download' apply plugin: 'idea' apply plugin: 'eclipse' apply plugin: "com.wynprice.cursemaven" sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { maven { name = "Modmuss50" url = "https://maven.modmuss50.me/" } maven { name = 'sponge' url = 'https://repo.spongepowered.org/maven' } maven { name = 'curseforge' url = 'https://minecraft.curseforge.com/api/maven' } maven { url 'https://jitpack.io' } maven { url 'http://server.bbkr.space:8081/artifactory/libs-release' } } version = "3.0.17" configurations { shade compile.extendsFrom shade } def ENV = System.getenv() def build_number = ENV.BUILD_NUMBER ?: "local" version = "${version}+build.$build_number" license { header file('HEADER') include '**/*.java' ignoreFailures = true //Stops the build from failing if a file does not have a license header } group = 'TechReborn' dependencies { minecraft "com.mojang:minecraft:1.14.4" mappings "net.fabricmc:yarn:1.14.4+build.2" modCompile "net.fabricmc:fabric-loader:0.6.1+build.165" //Fabric api modCompile "net.fabricmc.fabric-api:fabric-api:0.3.2+build.226-1.14" modCompile "io.github.prospector:modmenu:1.7.7+build.116" modCompile ("me.shedaniel:RoughlyEnoughItems:3.0-pre+build.3") { //Thanks for moving the project breaking gradle... exclude group: 'io.github.prospector.modmenu', module: 'ModMenu' } modCompile 'io.github.cottonmc:LibCD:1.3.3+1.14.4' def rcVersion = 'RebornCore:RebornCore-1.14.4:+' modCompile (rcVersion) { transitive = false } include rcVersion compile 'org.checkerframework:checker-qual:2.10.0' compile 'org.spongepowered:configurate-hocon:3.6' compile 'org.checkerframework:checker-qual:2.10.0' compileOnly "com.google.code.findbugs:jsr305:+" modCompileOnly ('com.github.Virtuoel:Towelette:519538e54b') { transitive = false } compile 'teamreborn:energy:0.0.7' //Test Generators mod if (false){ modCompile curse.resolve("energies", "2771235") modCompile curse.resolve("protos", "2771226") modCompile curse.resolve("generators", "2790134") } } processResources { inputs.property "version", project.version from(sourceSets.main.resources.srcDirs) { include "fabric.mod.json" expand "version": project.version } from(sourceSets.main.resources.srcDirs) { exclude "fabric.mod.json" } } jar { exclude "**/*.psd" classifier = 'universal' from { crowdin.getDidWork() ? fileTree('build/translations').matching{exclude "**/en_US.json"} : null} dependsOn 'renameCrowdin' } //Triggers crowdin to export the latest translations task crowdinExport() { onlyIf { project.hasProperty('crowdinKey') } doLast{ def apiKey = project.crowdinKey def projectId = 'techreborn' def response = new URL(sprintf('https://api.crowdin.com/api/project/%1$s/export?key=%2$s', [projectId, apiKey])).text def metadata = new XmlParser().parseText(response) project.logger.lifecycle("crowdin export status: " + metadata.@status) } } task crowdin(type: Download, dependsOn: 'crowdinExport'){ src 'https://crowdin.com/backend/download/project/techreborn.zip' dest file("build/translations.zip") overwrite true } task cleanCrowdin(type: Delete){ delete 'build/translations' } //Renames the translation files to be all lower case task renameCrowdin(type: Copy, dependsOn: ['crowdin', 'cleanCrowdin']){ mustRunAfter 'crowdin' from zipTree(file("build/translations.zip")) into file('build/translations') rename { String filename -> return filename.toLowerCase() } } task sourcesJar(type: Jar, dependsOn: classes) { classifier = "sources" from sourceSets.main.allSource } publishing { publications { maven(MavenPublication) { groupId 'TechReborn' artifactId project.archivesBaseName version project.version artifact(remapJar) { builtBy remapJar } artifact(sourcesJar) { builtBy remapSourcesJar } } } repositories { maven { url "http://mavenupload.modmuss50.me/" if (project.hasProperty('mavenPass')) { credentials { username 'buildslave' password project.getProperty('mavenPass') } } } } } // apply from: 'https://github.com/FabricMC/fabric-docs/raw/master/gradle/ideconfig.gradle' import com.google.gson.JsonArray import groovy.util.XmlSlurper import org.apache.commons.io.FileUtils import java.util.function.Consumer task curseTools { doLast { def cacheFiles = new File(".gradle/curseTools") if (!cacheFiles.exists()) { cacheFiles.mkdirs() } def mavenMetadata = new File(cacheFiles, "maven-metadata.xml") logger.lifecycle(":downloading curseTools metadata") FileUtils.copyURLToFile(new URL("http://maven.modmuss50.me/CurseTools/CurseTools/maven-metadata.xml"), mavenMetadata) def metadata = new XmlSlurper().parseText(FileUtils.readFileToString(mavenMetadata)) def curseToolsVersion = metadata.versioning.release def curseTools = new File(cacheFiles, "${curseToolsVersion}.jar") logger.lifecycle(":downloading CurseTools") FileUtils.copyURLToFile(new URL("http://maven.modmuss50.me/CurseTools/CurseTools/${curseToolsVersion}/CurseTools-${curseToolsVersion}.jar"), curseTools) logger.lifecycle(":launching CurseTools") ant.java(jar: curseTools.getAbsolutePath(), fork: true, spawn: false) { arg(value: remapJar.archivePath.getAbsolutePath()) } } }