plugins {
    id 'java-library'
    id 'fabric-loom' version '0.10-SNAPSHOT'
    id 'org.ajoberstar.reckon' version '0.13.0'
}

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

group = project.group
description = project.displayname
archivesBaseName = project.name

loom {
    mixin.defaultRefmapName = 'unicopia.mixin.refmap.json'
    accessWidenerPath = file('src/main/resources/unicopia.aw')
}

reckon {
    scopeFromProp()
    stageFromProp('beta', 'rc', 'final')
}

repositories {
    mavenLocal()
    maven {
        name = 'modmenu'
        url = 'https://maven.terraformersmc.com/releases'
    }
    maven {
        name = 'minelp'
        url = 'https://repo.minelittlepony-mod.com/maven/snapshot'
    }
    maven {
        name = 'minelp-release'
        url = 'https://repo.minelittlepony-mod.com/maven/release'
    }
}

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

    modApi "com.minelittlepony:minelittlepony:${project.minelp_version}"

    modApi "com.minelittlepony:kirin:${project.kirin_version}"
    include "com.minelittlepony:kirin:${project.kirin_version}"

    modCompileOnly("com.terraformersmc:modmenu:${project.modmenu_version}")
}

processResources {
    inputs.property "version", project.version.toString()

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

tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}

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