plugins {
	id 'dev.architectury.loom' version '1.9-SNAPSHOT'
	id 'maven-publish'
}

version = "${project.version}+${project.minecraft_version}"
group = "${project.maven_group}"

base {
	archivesName = project.archives_base_name
}

repositories {
	maven {
		name = "NeoForge"
		url = "https://maven.neoforged.net/releases"
	}
	maven {
		name = "Minecolonies"
		url = "https://ldtteam.jfrog.io/artifactory/mods-maven"
	}
	maven {
		name = "Just Enough Items"
		url = "https://maven.blamejared.com/"
	}
	maven {
		name = "Modrinth"
		url = "https://api.modrinth.com/maven"
	}
}

loom {
	mixin {
		useLegacyMixinAp = true
	}
}

dependencies {
	minecraft "com.mojang:minecraft:${project.minecraft_version}" //potentially net.minecraft instead of com.mojang
	mappings loom.layered {
		mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
		mappings "dev.architectury:yarn-mappings-patch-neoforge:${project.yarn_mappings_patch_version}"
	}

	neoForge "net.neoforged:neoforge:${project.neoforge_version}"

	// MixinExtras
	implementation(annotationProcessor("io.github.llamalad7:mixinextras-neoforge:${project.mixinextras_version}"))
	include("io.github.llamalad7:mixinextras-neoforge:${project.mixinextras_version}:slim")

	// Minecolonies
	modImplementation("com.ldtteam:minecolonies:${project.minecolonies_version}")

	// WorldEditCUI
	modImplementation("maven.modrinth:worldeditcui-forge:${project.worldeditcui_version}")
}

processResources {
	def properties = [
		"loader_version": loader_version,
		"version": version,
		"minecraft_version": minecraft_version,
		"neoforge_version": neoforge_version,
		"java_version": java_version,
		"mixinextras_version": mixinextras_version,
		"minecolonies_version": minecolonies_version,
		"worldeditcui_version": worldeditcui_version,
	]

	inputs.properties(properties)

	filesMatching(["META-INF/neoforge.mods.toml", "fixer.mixins.json"]) {
		expand(properties)
	}
}

tasks.withType(JavaCompile).configureEach {
	it.options.release = Integer.valueOf(java_version)
}

java {
	withSourcesJar()

	def javaVersion = JavaVersion.toVersion(java_version)

	sourceCompatibility = javaVersion
	targetCompatibility = javaVersion
}

jar {
	from("LICENSE.md")
}

publishing {
	publications {
		create('mavenJava', MavenPublication) {
			artifactId = archives_base_name
			//noinspection GroovyAssignabilityCheck
			from components.java
		}
	}

	// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
	repositories {
	}
}
