
The new one is now built for the api jar and the old one is now internal. It will slowly be moved around to sane places within the internal code. Most of the features provided in the old "api" are addon specific features which will generally rely on the main jar anyways. The new API will be specific to compatibility features, such as blacklists, recipes, and value modification.
176 lines
4.3 KiB
Groovy
176 lines
4.3 KiB
Groovy
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.0.9'
|
|
id 'io.franzbecker.gradle-lombok' version '1.6'
|
|
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 "Constants.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'
|
|
}
|
|
}
|
|
|
|
if (JavaVersion.current().isJava8Compatible()) {
|
|
allprojects {
|
|
tasks.withType(Javadoc) {
|
|
options.addStringOption('Xdoclint:none', '-quiet')
|
|
}
|
|
}
|
|
}
|
|
|
|
jar {
|
|
classifier = ''
|
|
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}"
|
|
)
|
|
}
|
|
|
|
// API jar
|
|
task apiJar(type: Jar) {
|
|
from sourceSets.main.allSource
|
|
from sourceSets.main.output
|
|
include 'WayofTime/bloodmagic/api/**/*'
|
|
exclude 'WayofTime/bloodmagic/api/impl/**/*'
|
|
classifier = 'api'
|
|
}
|
|
|
|
// Javadoc jar
|
|
task javadocJar(type: Jar, dependsOn: javadoc) {
|
|
from javadoc.destinationDir
|
|
classifier = 'javadoc'
|
|
}
|
|
|
|
tasks.build.dependsOn javadoc, javadocJar, apiJar
|
|
|
|
tasks.withType(JavaCompile) { task ->
|
|
task.options.encoding = 'UTF-8'
|
|
}
|
|
|
|
publishing {
|
|
tasks.publish.dependsOn 'build'
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
artifact jar
|
|
artifact javadocJar
|
|
artifact sourceJar
|
|
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_WayofTime'))
|
|
apiKey = project.curse_key_WayofTime
|
|
|
|
project {
|
|
id = "${curse_id}"
|
|
changelog = getChangelogText()
|
|
releaseType = 'beta'
|
|
|
|
relations curseRelations
|
|
|
|
addArtifact javadocJar
|
|
addArtifact sourceJar
|
|
addArtifact apiJar
|
|
}
|
|
}
|