buildscript {
    repositories {
        jcenter()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT'
    }
}

apply plugin: 'net.minecraftforge.gradle.forge'

// ensure Java 8 compatibility
sourceCompatibility = "1.8"
targetCompatibility = "1.8"

/*
 * Gets the version name from the latest Git tag
 */
def getGitTag = { ->
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'describe', '--tags'
            standardOutput = stdout
        }
        return stdout.toString().trim()
    } catch (Exception e) {
        // git is probably not installed, return placeholder
        return "snapshot"
    }
}

minecraft {
    version = "1.12-14.21.1.2387"
    runDir = "minecraft"
    
    // the mappings can be changed at any time, and must be in the following format.
    // snapshot_YYYYMMDD   snapshot are built nightly.
    // stable_#            stables are built at the discretion of the MCP team.
    // Use non-default mappings at your own risk. they may not allways work.
    // simply re-run your setup task after changing the mappings to update your workspace.
    mappings = "snapshot_20170726"
}

version = getGitTag()
group = "info.ata4.minecraft.mineshot" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "Mineshot"

// replace version placeholder in the main mod class
minecraft {
    replaceIn project.group.replace(".", "/") + "/${project.archivesBaseName}.java"
    replace "@VERSION@", project.version
}

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'
    }
}

// add core mod class path to manifest
jar {
    manifest {
        attributes\
            "FMLCorePlugin": "info.ata4.minecraft.mineshot.MineshotCore",
            "FMLCorePluginContainsFMLMod" : "true"
    }
}

// Netbeans workaround for debugging: debugClient doesn't exist anymore and for
// some reason, it's impossible to pass debug parameters with the Gradle plugin
// runClient.debug = true
