plugins {
	id 'java'
	id 'maven-publish'
	id 'java-gradle-plugin'
	id 'idea'
	id 'eclipse'
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

group = 'net.fabricmc'
archivesBaseName = project.name
version = '0.2.1-SNAPSHOT'

def build = "local"
def ENV = System.getenv()
if (ENV.BUILD_NUMBER) {
	build = "jenkins #${ENV.BUILD_NUMBER}"
}

repositories {
	mavenCentral()
	maven {
		name = "Fabric"
		url = 'https://maven.fabricmc.net/'
	}
}

dependencies {
	implementation gradleApi()

	implementation ('commons-io:commons-io:2.6')
	implementation ('org.zeroturnaround:zt-zip:1.13')
	implementation ('com.google.code.gson:gson:2.8.5')
	implementation ('com.google.guava:guava:27.1-jre')
	implementation ('net.fabricmc:stitch:0.1.2.47') {
		exclude module: 'enigma'
	}
	implementation ('net.fabricmc:tiny-remapper:0.1.0.29') {
		transitive = false
	}
	implementation ('org.jetbrains:intellij-fernflower:1.0.0.7')

	implementation ('net.fabricmc:sponge-mixin:0.7.11.17') {
		exclude module: 'launchwrapper'
		exclude module: 'guava'
	}

	implementation ('org.cadixdev:mercury:0.1.0.fabric-SNAPSHOT')

}

jar {
	manifest {
		attributes 'Implementation-Version': version + " Build(" + build + ")"
	}
}

task sourcesJar(type: Jar, dependsOn: classes) {
	classifier = 'sources'
	from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) {
	classifier = 'javadoc'
	from javadoc.destinationDir
}

apply from: 'https://github.com/FabricMC/fabric-docs/raw/master/gradle/license.gradle'

task wrapper(type: Wrapper) {
	gradleVersion = '4.10.2'
}

gradlePlugin {
	plugins {
		register("fabricLoom") {
			id = "fabric-loom"
			implementationClass = "net.fabricmc.loom.LoomGradlePlugin"
		}
	}
}

publishing {
	publications {
		plugin(MavenPublication) { publication ->
			groupId project.group
			artifactId project.archivesBaseName
			version project.version

			from components["java"]
	
			artifact sourcesJar
			artifact javadocJar
		}
	}
	repositories {
		maven {
			url "http://mavenupload.modmuss50.me/"
			if (project.hasProperty('mavenPass')) {
				credentials {
					username 'buildslave'
					password project.getProperty('mavenPass')
				}
			}
		}
	}
}