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(21)
    }
    minecraftVersion "1.20.6"
}

processResources {
    expand("version": version)
}

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

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

    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