buildscript {
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "https://maven.minecraftforge.net/"
        }
    }
    dependencies {
        classpath ('com.anatawa12.forge:ForgeGradle:1.2-1.1.+') {
            changing = true
        }
    }
}

plugins {
    id 'java-library'
    id 'maven-publish'
}

apply plugin: 'forge'

// These settings allow you to choose what version of Java you want to be compatible with. Forge 1.7.10 runs on Java 6 to 8.
sourceCompatibility = 1.6
targetCompatibility = 1.6

version = project.version
group = project.group

minecraft {
    version = project.minecraft_version + "-" + project.forge_version
    runDir = "run"
}

dependencies {
    // you may put jars on which you depend on in ./libs
    // or you may define them like so..
    //compile "some.group:artifact:version:classifier"
    //compile "some.group:artifact:version"

    // real examples
    //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev'  // adds buildcraft to the dev env
    //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env

    // for more info...
    // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
    // http://www.gradle.org/docs/current/userguide/dependency_management.html
}

processResources {
    // This will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // Replace values in only mcmod.info.
    filesMatching('mcmod.info') {
        // Replace version and mcversion.
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
}

// Ensures that the encoding of source files is set to UTF-8, see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}

// This task creates a .jar file containing the source code of this mod.
task sourcesJar(type: Jar, dependsOn: classes) {
    classifier = "sources"
    from sourceSets.main.allSource
}

// This task creates a .jar file containing a deobfuscated version of this mod, for other developers to use in a development environment.
task devJar(type: Jar) {
    classifier = "dev"
    from sourceSets.main.output
}

// Creates the listed artifacts on building the mod.
artifacts {
    archives sourcesJar
    archives devJar
}

// This block configures any maven publications you want to make.
publishing {
    publications {
        mavenJava(MavenPublication) {
        // Add any other artifacts here that you would like to publish!
            artifact(jar) {
                builtBy build
            }
            artifact(sourcesJar) {
                builtBy sourcesJar
            }
            artifact(devJar) {
                builtBy devJar
            }
        }
    }

    // This block selects the repositories you want to publish to.
    repositories {
        // Add the repositories you want to publish to here.
    }
}
