buildscript {
    repositories {
        maven { url = 'https://files.minecraftforge.net/maven/' }
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
    }
}

apply plugin: 'net.minecraftforge.gradle'

minecraft {
	mappings channel: 'snapshot', version: '20190719-1.14.3'
}

configurations {
	compile.extendsFrom include
}

dependencies {
	minecraft 'net.minecraftforge:forge:1.14.4-28.2.0'
	
    include (project(':BlueMapCommon')) {
    	//exclude dependencies provided by forge
		exclude group: 'com.google.guava', module: 'guava'
		exclude group: 'com.google.code.gson', module: 'gson'
		exclude group: 'org.apache.commons', module: 'commons-lang3'
		exclude group: 'commons-io', module: 'commons-io'
		exclude group: 'com.mojang', module: 'brigadier'
    }
}

build.dependsOn shadowJar {
	destinationDir = file '../build/unsupported'
	archiveFileName = "BlueMap-${version}-forge.jar"
	
	configurations = [project.configurations.include]
	
	//relocate 'com.flowpowered.math', 'de.bluecolored.shadow.flowpowered.math' //DON'T relocate this, because the API depends on it
	relocate 'com.typesafe.config', 'de.bluecolored.shadow.typesafe.config'
	relocate 'net.querz.nbt', 'de.bluecolored.shadow.querz.nbt'
	relocate 'ninja.leaping.configurate', 'de.bluecolored.shadow.ninja.leaping.configurate'
	relocate 'org.yaml.snakeyaml', 'de.bluecolored.shadow.yaml.snakeyaml'
}

processResources {
	from(sourceSets.main.resources.srcDirs) {
		include 'mcmod.info','META-INF/mods.toml'
		
		expand (
			version: project.version
		)
	}
}

afterEvaluate {
	reobf {
		shadowJar {
			mappings = createMcpToSrg.output
		}
	}
}