buildscript {
    repositories {
        jcenter()
        maven {
            name 'JitPack'
            url 'https://jitpack.io'
        }
        maven { url = "https://maven.minecraftforge.net/" }
        maven { url = "https://repo.spongepowered.org/maven" }
    }
    dependencies {
        classpath "com.github.asbyth:ForgeGradle:6f53277"
        classpath 'com.github.LxGaming:MixinGradle:d75e32e'//0.6-SNAPSHOT'
		classpath 'com.github.jengelman.gradle.plugins:shadow:6.1.0'
    }
}

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

sourceCompatibility = 1.8
targetCompatibility = 1.8

version = "2.0-PRE"
group= "io.github.moulberry"
archivesBaseName = "NotEnoughUpdates"
String modid = "notenoughupdates"
String mixinClassifier = "dep"

minecraft {
    version = "1.8.9-11.15.1.2318-1.8.9"
    runDir = "run"
    mappings = "stable_22"
}

repositories {
    jcenter()
    maven { url 'https://repo.spongepowered.org/maven/' }
	flatDir {
		dirs 'deps'
	}
}

dependencies {
    compile('org.spongepowered:mixin:0.7.11-SNAPSHOT')
    annotationProcessor('org.spongepowered:mixin:0.7.11-SNAPSHOT')
	compile('com.fasterxml.jackson.core:jackson-core:2.10.2')
    compile('info.bliki.wiki:bliki-core:3.1.0')
}

mixin {
    add sourceSets.main, "mixins.${modid}.refmap.json"
}

jar {
    manifest.attributes(
		'Main-Class': 'NotSkyblockAddonsInstallerFrame',
		'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker',
		'MixinConfigs': "mixins.${modid}.json",
		'FMLCorePluginContainsFMLMod': true,
		"ForceLoadAsMod": true,
        "FMLAT": 'notenoughupdates_at.cfg'
    )
}

shadowJar {
	dependencies {
		include(dependency('org.spongepowered:mixin:0.7.11-SNAPSHOT'))
		
        include(dependency('commons-io:commons-io'))
        include(dependency('org.apache.commons:commons-lang3'))
        include(dependency('com.fasterxml.jackson.core:jackson-databind:2.10.2'))
        include(dependency('com.fasterxml.jackson.core:jackson-annotations:2.10.2'))
        include(dependency('com.fasterxml.jackson.core:jackson-core:2.10.2'))
		
		include(dependency('info.bliki.wiki:bliki-core:3.1.0'))
		include(dependency('org.slf4j:slf4j-api:1.7.18'))
		include(dependency('org.luaj:luaj-jse:3.0.1'))
    }
	
	relocate 'com.fasterxml.jackson', 'neu.com.fasterxml.jackson'
    relocate 'org.eclipse', 'neu.org.eclipse'
	relocate 'org.slf4j', 'neu.org.slf4j'
	
	exclude 'module-info.class'
    exclude 'dummyThing'
    exclude 'LICENSE.txt'

    classifier = mixinClassifier
}

reobf {
	shadowJar { 
		mappingType = 'SEARGE' 
	}
}

build.dependsOn(shadowJar)
runClient.dependsOn(build)

processResources
{
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
        
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }

    rename '(.+_at.cfg)', 'META-INF/$1'
}

task moveResources {
    doLast {
        ant.move file: "${buildDir}/resources/main",
            todir: "${buildDir}/classes/java"
    }
}
moveResources.dependsOn processResources
classes.dependsOn moveResources