plugins {
    id 'fabric-loom' version '1.8-SNAPSHOT'
    id 'maven-publish'
}  

archivesBaseName = project.archives_base_name
version = project.mod_version
group = project.maven_group

repositories {
    maven { url "https://maven.shedaniel.me/" }
    maven { url "https://maven.terraformersmc.com/" }
    maven { url "https://jitpack.io" }
    maven { url "https://api.modrinth.com/maven" }
    maven { url "https://www.cursemaven.com" }
    maven { url "https://maven.nucleoid.xyz/" }
    maven { url "https://maven.jamieswhiteshirt.com/libs-release/" }
    maven { url "https://maven.bai.lol" }
    maven { url "https://maven.ladysnake.org/releases" }
}

loom {
    accessWidenerPath = file("src/main/resources/levelz.accesswidener")
}

dependencies {
    minecraft "com.mojang:minecraft:${project.minecraft_version}"
    mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
    modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
    modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"

    // LibZ
    modApi ('maven.modrinth:libz:1.0.3+1.21.1') {
		exclude(group: "net.fabricmc.fabric-api")
	}
    // Cloth
    modImplementation("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") {
        exclude(group: "net.fabricmc.fabric-api")
    }
    // ModMenu
    modCompileOnly modRuntimeOnly("com.terraformersmc:modmenu:${project.mod_menu_version}") {
        exclude(group: "net.fabricmc.fabric-api")
    }
    // Wthit
    modCompileOnly ("mcp.mobius.waila:wthit-api:fabric-12.4.2")
	// Jade
    modCompileOnly ('maven.modrinth:jade:15.8.2+fabric'){
		exclude(group: "net.fabricmc.fabric-api")
	}
	// MCDA
//	modCompileOnly ('curse.maven:mcda-426206:3821450') {
//		exclude(group: "net.fabricmc.fabric-api")
//	}
    // DragonLoot
	modCompileOnly ('maven.modrinth:dragonloot:1.1.7+1.21.1') {
		exclude(group: "net.fabricmc.fabric-api")
	}
//    // Trinkets
//    modCompileOnly("dev.onyxstudios.cardinal-components-api:cardinal-components-base:5.2.2")
//	modCompileOnly("dev.onyxstudios.cardinal-components-api:cardinal-components-entity:5.2.2")
//    modCompileOnly ('maven.modrinth:trinkets:3.7.1') {
//		exclude(group: "net.fabricmc.fabric-api")
//	}
    // REI
    modCompileOnly "me.shedaniel:RoughlyEnoughItems-fabric:16.0.788"
    // EMI
    modCompileOnly ('maven.modrinth:emi:1.1.17+1.21.1+fabric') {
        exclude(group: "net.fabricmc.fabric-api")
    }

    // PlaceHolder
    modCompileOnly ("eu.pb4:placeholder-api:2.4.1+1.21")
    // Inmis
    modCompileOnly ('maven.modrinth:inmis:2.8.1-1.21.1') {
        exclude(group: "net.fabricmc.fabric-api")
    }
    // Accessories
    modCompileOnly ('maven.modrinth:accessories:j6K4uRb7') {
        exclude(group: "net.fabricmc.fabric-api")
    }
    // CosmeticArmor
//    modCompileOnly ('maven.modrinth:cosmetic-armor:1.5.0') {
//		exclude(group: "net.fabricmc.fabric-api")
//	}
    // TreeChop
    modCompileOnly ('maven.modrinth:treechop:0.19.2') {
		exclude(group: "net.fabricmc.fabric-api")
	}
    // Alloygery
//    modCompileOnly ('maven.modrinth:alloygery:2.5.5+1.19.2') {
//		exclude(group: "net.fabricmc.fabric-api")
//	}
    // Spell-Engine
    modCompileOnly ('maven.modrinth:spell-engine:1.1.2+1.21.1') {
		exclude(group: "net.fabricmc.fabric-api")
	}
}


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

    filesMatching("fabric.mod.json") {
		expand "version": project.version, "fabric_version": project.fabric_version, "loader_version": project.loader_version, "minecraft_version": project.minecraft_version, "cloth_config_version": project.cloth_config_version
	}
}

tasks.withType(JavaCompile).configureEach {
    it.options.release = 21
}

java {
    withSourcesJar()

    sourceCompatibility = JavaVersion.VERSION_21
    targetCompatibility = JavaVersion.VERSION_21
}

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

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }

    repositories {
    }
}