plugins {
    id "java"
    id "com.github.johnrengelman.shadow" version "8.1.1"
    id "xyz.jpenilla.run-paper" version "2.2.0"
}

runServer {
    javaLauncher = javaToolchains.launcherFor {
        languageVersion = JavaLanguageVersion.of(17)
    }
    minecraftVersion "1.20.4"
}

processResources {
    expand("version": version)
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            artifactId = "znpcsplus-plugin"

            pom {
                name.set("znpcsplus-plugin")
                description.set("The ZNPCsPlus plugin")
                url.set("https://github.com/Pyrbu/ZNPCsPlus")
            }
        }
    }
}

dependencies {
    compileOnly "me.clip:placeholderapi:2.11.5" // Placeholder support
    compileOnly "com.google.code.gson:gson:2.10.1" // JSON parsing
    compileOnly "org.bstats:bstats-bukkit:3.0.2" // Plugin stats
    compileOnly "me.robertlit:SpigotResourcesAPI:2.0" // Spigot API wrapper for update checker
    compileOnly "com.github.retrooper.packetevents:spigot:2.2.1" // Packets
    compileOnly "space.arim.dazzleconf:dazzleconf-ext-snakeyaml:1.2.1" // Configs
    compileOnly "lol.pyr:director-adventure:2.1.1" // Commands

    // Fancy text library
    compileOnly "net.kyori:adventure-platform-bukkit:4.3.2"
    compileOnly "net.kyori:adventure-text-minimessage:4.15.0"

    implementation "me.lucko:jar-relocator:1.7"
    implementation project(":api")
}

shadowJar {
    archivesBaseName = "ZNPCsPlus"
    archiveClassifier.set ""

    relocate "org.objectweb.asm", "lol.pyr.znpcsplus.libraries.asm"
    relocate "me.lucko.jarrelocator", "lol.pyr.znpcsplus.libraries.jarrelocator"

    // When changing anything here remember to also update the bootstrap
    relocate "org.bstats", "lol.pyr.znpcsplus.libraries.bstats"
    relocate "me.robertlit.spigotresources", "lol.pyr.znpcsplus.libraries.spigotresources"
    relocate "net.kyori", "lol.pyr.znpcsplus.libraries.kyori"
    relocate "org.checkerframework", "lol.pyr.znpcsplus.libraries.checkerframework"
    relocate "com.google", "lol.pyr.znpcsplus.libraries.google"
    relocate "com.github.retrooper.packetevents", "lol.pyr.znpcsplus.libraries.packetevents.api"
    relocate "io.github.retrooper.packetevents", "lol.pyr.znpcsplus.libraries.packetevents.impl"
    relocate "org.yaml.snakeyaml", "lol.pyr.znpcsplus.libraries.snakeyaml"
    relocate "space.arim.dazzleconf", "lol.pyr.znpcsplus.libraries.dazzleconf"
    relocate "lol.pyr.director", "lol.pyr.znpcsplus.libraries.command"

    minimize()
}

tasks.assemble.dependsOn shadowJar