buildscript { repositories { mavenCentral() maven { url "http://files.minecraftforge.net/maven" } maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' } } plugins { id "net.minecraftforge.gradle.forge" version "2.0.2" id 'com.matthewprenger.cursegradle' version '1.1.0' id 'maven-publish' } def build_number = 'CUSTOM' if (System.getenv('BUILD_NUMBER') != null) build_number = System.getenv('BUILD_NUMBER') def username = "${mod_name}" if (project.hasProperty('dev_username')) username = "${dev_username}" group = package_group archivesBaseName = mod_name version = "${mc_version}-${mod_version}-${build_number}" repositories { maven { url "http://dvs1.progwml6.com/files/maven" } maven { url "http://tehnut.info/maven" } } dependencies { deobfCompile "mezz.jei:jei_${mc_version}:${jei_version}" deobfCompile "mcp.mobius.waila:Hwyla:${waila_version}" deobfCompile "info.amerifrance.guideapi:Guide-API:${guideapi_version}" } minecraft { version = "${mc_version}-${forge_version}" runDir = "run" replace "@VERSION@", project.version replaceIn "BloodMagic.java" clientRunArgs += "--username=${username}" if (project.hasProperty('mappings_version')) mappings = project.mappings_version } processResources { inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version from(sourceSets.main.resources.srcDirs) { include '**/*.info' include '**/*.properties' expand 'version': project.version, 'mcversion': project.minecraft.version } from(sourceSets.main.resources.srcDirs) { exclude '**/*.info' exclude '**/*.properties' } } allprojects { tasks.withType(Javadoc) { options.addStringOption('Xdoclint:none', '-quiet') } } jar { classifier = '' from sourceSets.main.output from sourceSets.api.output manifest.mainAttributes( "Built-By": System.getProperty('user.name'), "Created-By": "${System.getProperty('java.vm.version')} + (${System.getProperty('java.vm.vendor')})", "Implementation-Title": project.name, "Implementation-Version": project.version, "Built-On": "${mc_version}-${forge_version}" ) } task apiJar(type: Jar) { classifier = 'api' from sourceSets.api.output // TODO: when FG bug is fixed, remove allJava from the api jar. // https://github.com/MinecraftForge/ForgeGradle/issues/369 // Gradle should be able to pull them from the -sources jar. from sourceSets.api.allJava } task javadocJar(type: Jar, dependsOn: javadoc) { from javadoc.destinationDir classifier = 'javadoc' } task sourcesJar(type: Jar) { classifier = 'sources' from sourceSets.main.allJava from sourceSets.api.allJava } tasks.build.dependsOn javadoc, javadocJar, apiJar, sourcesJar tasks.withType(JavaCompile) { task -> task.options.encoding = 'UTF-8' } publishing { tasks.publish.dependsOn 'build' publications { mavenJava(MavenPublication) { artifact jar artifact javadocJar artifact sourcesJar artifact apiJar } } repositories { if (project.hasProperty('maven_repo')) { maven { url maven_repo } } else { mavenLocal() } } } String getChangelogText() { def changelogFile = new File('changelog.txt') String str = '' String separator = '---' int lineCount = 0 boolean done = false changelogFile.eachLine { if (done || it == null) { return } if (lineCount < 3) { lineCount++ if (it.startsWith(separator)) { return } } if (!it.startsWith(separator)) { str += "$it" + (lineCount < 3 ? ':\n\n' : '\n') return } done = true // once we go past the first version block, parse no more } return str } def curseRelations = { optionalLibrary 'jei' optionalLibrary 'hwyla' requiredLibrary 'guide-api' } curseforge { if (project.hasProperty('curse_key_TehNut')) apiKey = project.curse_key_TehNut project { id = "${curse_id}" changelog = getChangelogText() releaseType = 'beta' relations curseRelations addArtifact javadocJar addArtifact sourcesJar addArtifact apiJar } }