plugins {
    id 'java-library'
    id 'fabric-loom'
    id 'maven-publish'
}

targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_1_8

version = "${project.minecraft_version}-${project.version}"

if (project.release != 'RELEASE') {
    version += "-${project.release}"
}

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

minecraft {
    
}

repositories {
    maven {
        name = "dblsaiko"
        url = "https://maven.dblsaiko.net/"
    }
    maven {
        name = "Cotton"
        url = "http://server.bbkr.space:8081/artifactory/libs-release/"
    }
}

// check for updates every build when on CI
if (System.env.CI) {
    configurations.all {
        resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
    }
}

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

    compileOnly "com.google.code.findbugs:jsr305:3.0.2"

    modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"

    modCompileOnly("grondag:canvas-mc116:${project.canvas_version}") {
        exclude(group: "net.fabricmc.fabric-api")
        exclude(module: "fabric-loader")
    }
}

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

    from(sourceSets.main.resources.srcDirs) {
        include "fabric.mod.json"
        expand "version": project.version
    }

    from(sourceSets.main.resources.srcDirs) {
        exclude "fabric.mod.json"
    }
}

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

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