buildscript {
    ext.kotlin_version = '1.3.72'
    repositories {
        jcenter()
        maven {
            name = "konas-mirror"
            url = "https://maven.konasclient.com/"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
        classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT'
        classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: "net.minecraftforge.gradle.forge"
apply plugin: 'org.spongepowered.mixin'
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'kotlin'

version = "b1"
group = modGroup
archivesBaseName = "Konas"

minecraft {
    version = project.forgeVersion
    runDir = "run"
    mappings = project.mcpVersion
    coreMod = 'me.darki.konas.mixin.LoadingPlugin'
}


repositories {
    maven {
        name = "konas-mirror"
        url = "https://maven.konasclient.com/"
    }
    maven { url 'https://jitpack.io' }
    mavenCentral()
    jcenter()
}

dependencies {
    //mixin needs to be distributed with the mod, very important
    compile("org.spongepowered:mixin:0.7.11-SNAPSHOT") {
        exclude module: 'launchwrapper'
        exclude module: 'guava'
        exclude module: 'gson'
        exclude module: 'commons-io'
    }

    compile(group: 'org.reflections', name: 'reflections', version: '0.9.12') {
        exclude group: 'com.google.guava', module: 'guava'
    }

    compile group: 'org.yaml', name: 'snakeyaml', version: '1.28'

    compile 'com.github.DarkiBoi:EventDispatcher:v1.1'

    compile 'club.minnced:java-discord-rpc:2.0.2'

    compile("dev.tigr:emojiapi:1.0") {
        exclude module: 'guava'
        exclude module: 'gson'
    }

}


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

}


shadowJar {
    dependencies {
        include(dependency('org.spongepowered:mixin'))
        include(dependency('org.reflections:reflections'))
        include(dependency("org.jetbrains.kotlin:kotlin-stdlib"))
        include(dependency('com.github.DarkiBoi:EventDispatcher:v1.1'))
        include(dependency("club.minnced:java-discord-rpc:2.0.2"))
        include(dependency("dev.tigr:emojiapi"))
        include(dependency("org.yaml:snakeyaml"))
    }

    exclude 'dummyThing'
    exclude 'LICENSE.txt'
    classifier = 'release'
}

mixin {
    defaultObfuscationEnv searge
    add sourceSets.main, 'mixins.konas.refmap.json'
}

reobf {
    shadowJar {
        mappingType = 'SEARGE'
        classpath = sourceSets.main.compileClasspath
    }
}

jar {
    manifest {
        attributes(
                'MixinConfigs': 'mixins.konas.json',
                'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker',
                'TweakOrder': 0,
                'FMLCorePluginContainsFMLMod': 'true',
                'FMLCorePlugin': 'me.darki.konas.mixin.LoadingPlugin',
                'ForceLoadAsMod': 'true',
        )
    }
}

build.dependsOn(shadowJar)