plugins {
	id 'fabric-loom' version '0.12-SNAPSHOT'
	id 'io.github.juuxel.loom-quiltflower' version '1.7.1'
	id 'maven-publish'
}

runClient.doFirst {
	args = ['--username', "PR0CESS", '--uuid', UUID.randomUUID()]
}

repositories {
	maven {
		url 'https://masa.dy.fi/maven'
	}
	allprojects {
		repositories {
			maven {
				name 'JitPack'
				url 'https://jitpack.io'
			}
		}
	}
    mavenCentral()
}

sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

archivesBaseName = project.archives_base_name
version = project.display_minecraft_version+'-'+project.mod_version
group = project.maven_group

sourceSets {
	main {
		java {
			compileClasspath += main.compileClasspath
			runtimeClasspath += main.compileClasspath
		}
	}
}

loom {
	accessWidenerPath = file("src/main/resources/carpet-fixes.accesswidener")
	runs {
		testmodServer {
			runDir("testserver");
			server()
			ideConfigGenerated project.rootProject == project
			source sourceSets.main
		}
		autoTestServer {
			runDir("testserver");
			inherit testmodServer
			vmArg "-Dfabric.autoTest"
		}
	}
}

dependencies {
    //to change the versions see the gradle.properties file
	minecraft "com.mojang:minecraft:${project.minecraft_version}"
	mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
	modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
	modImplementation "carpet:fabric-carpet:${project.carpet_minecraft_version}-${project.carpet_core_version}"

	include "com.github.Fallen-Breath:conditional-mixin:${project.conditionalmixin_version}"
	modImplementation "com.github.Fallen-Breath:conditional-mixin:${project.conditionalmixin_version}"

	include(implementation(annotationProcessor("io.github.llamalad7:mixinextras-fabric:${project.mixinextras_version}")))
}

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

	filesMatching("fabric.mod.json") {
		expand "version": project.version
	}
}

tasks.withType(JavaCompile).configureEach {
	// ensure that the encoding is set to UTF-8, no matter what the system default is
	// this fixes some edge cases with special characters not displaying correctly
	// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
	// If Javadoc is generated, this must be specified in that task too.
	it.options.encoding = "UTF-8"
	it.options.release = 17
}

java {
	withSourcesJar()
}

jar {
	from("LICENSE") {
		rename { "${it}_${project.archivesBaseName}"}
	}
}

// configure the maven publication
publishing {
	publications {
		mavenJava(MavenPublication) {
			// add all the jars that should be included when publishing to maven
			artifact(jar) {
				builtBy remapJar
			}
			artifact(sourcesJar) {
				builtBy remapSourcesJar
			}
		}
	}
}
