plugins {
    id 'java'
    id 'com.github.johnrengelman.shadow' version '8.1.1'
}

group = 'de.ayont'
version = '3.6.9'

repositories {
    mavenCentral()
    maven {
        name = "papermc-repo"
        url = "https://repo.papermc.io/repository/maven-public/"
    }
    maven {
        name = "sonatype"
        url = "https://oss.sonatype.org/content/groups/public/"
    }
    maven {
        name = "placeholderapi"
        url = "https://repo.extendedclip.com/content/repositories/placeholderapi/"
    }
}

dependencies {
    compileOnly "io.papermc.paper:paper-api:$paper"
    compileOnly "net.luckperms:api:$luckpermsapi"
    compileOnly "me.clip:placeholderapi:$papi"
    implementation "net.kyori:adventure-platform-bukkit:$platformbukkit"
    implementation "net.kyori:adventure-text-minimessage:$adventure"
}

shadowJar {
    archiveFileName.set('LPC-Minimessage.jar')
    mergeServiceFiles {
        exclude 'META-INF/*.DSA'
        exclude 'META-INF/*.RSA'
    }
}

def targetJavaVersion = 21
java {
    def javaVersion = JavaVersion.toVersion(targetJavaVersion)
    sourceCompatibility = javaVersion
    targetCompatibility = javaVersion
    if (JavaVersion.current() < javaVersion) {
        toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
    }
}

tasks.withType(JavaCompile).configureEach {
    options.encoding = 'UTF-8'

    if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
        options.release.set(targetJavaVersion)
    }
}

processResources {
    def props = [version: version]
    inputs.properties props
    filteringCharset 'UTF-8'
    filesMatching('plugin.yml') {
        expand props
    }
}
