buildscript {
    repositories {
        jcenter()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT'
        classpath 'gradle.plugin.com.matthewprenger:CurseGradle:1.0.8'
    }
}

apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: "com.matthewprenger.cursegradle"

repositories {
    mavenLocal()
    mavenCentral()
    maven {
        name = "chickenbones"
        url = "http://chickenbones.net/maven/"
    }

    maven {
        name 'DVS1 Maven FS'
        url 'http://dvs1.progwml6.com/files/maven'
    }
}

group = "com.sosnitzka" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "taiga"

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8


task buildInfo {
    if (System.getenv().TAIGA_TAG != null) {
        ext.revision = System.getenv().TAIGA_TAG
    } else {
        ext.revision = "snapshot"
    }

    if (System.getenv().BUILD_NUMBER != null) {
        ext.buildNum = System.getenv().BUILD_NUMBER
    }


    def cmd = "git log \$(git tag --sort=-refname | sed -n '2p')..\$(git tag --sort=-refname | sed -n '1p') --oneline"
    def proc = cmd.execute()
    proc.waitFor()
    if (proc.exitValue() == 0) {
        ext.changes = proc.text.trim()
    } else {
        ext.changes = "N/A"
    }
}

version = project.buildInfo.revision

minecraft {
    version = "1.11.2-13.20.1.2386"
    runDir = "run"
    mappings = "snapshot_20170612"
    replace '@VERSION@', project.version
}

//noinspection GroovyAssignabilityCheck
ext.mc_version = project.minecraft.version.split('-')[0]
version = "${mc_version}-${project.buildInfo.revision}"

dependencies {
    //deobfCompile "codechicken:CodeChickenLib:1.9.4-2.0.2.39:deobf"
    //deobfCompile "codechicken:CodeChickenCore:1.9.4-2.0.3.65:deobf"
    //deobfCompile "codechicken:NotEnoughItems:1.9-${nei_version}:dev"
    deobfCompile "slimeknights.mantle:Mantle:1.10.2-1.1.+:deobf"
    //Old: deobfCompile "slimeknights.mantle:Mantle:1.9-0.10.0.jenkins132:deobf"
    deobfCompile "mezz.jei:jei_1.11.2:4.+"
    deobfCompile "slimeknights:TConstruct:1.11.2-2.7.+:deobf"
    //compile files('libs/TConstruct-1.9-2.3.1.DEV.1d4c1de-deobf.jar')
    //compile group: 'com.google.guava', name: 'guava', version: '20.0'
}

sourceSets {
    main {
        resources {
            srcDir 'resources'
        }
    }
}

//noinspection GroovyAssignabilityCheck
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 stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'

        // replace version and mcversion
        expand 'version': project.version, 'mcversion': project.minecraft.version
    }

    // copy everything else, thats not the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}

task deobfJar(type: Jar) {
    //noinspection GroovyAssignabilityCheck
    from sourceSets.main.output
    classifier = 'deobf'
}

artifacts {
    archives deobfJar
}

curseforge {
    apiKey = System.getenv().CURSE_API_KEY ? System.getenv().CURSE_API_KEY : "devBuild"
    //noinspection GroovyAssignabilityCheck
    project {
        id = '247661'
        changelog = project.buildInfo.changes // A file can also be set using: changelog = file('changelog.txt')
        releaseType = 'release'
        //addGameVersion '1.10.2'
        //addGameVersion '1.10.1'
        addArtifact deobfJar

        mainArtifact(jar) {
            displayName = "taiga-${project.buildInfo.revision}"
        }

        relations {
            requiredLibrary 'tinkers-construct'
        }
    }
}