plugins { kotlin("jvm") version "2.2.0-Beta1" id("com.gradleup.shadow") version "9.2.2" id("xyz.jpenilla.run-paper") version "3.0.2" id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" id("org.jlleitschuh.gradle.ktlint") version "14.0.1" } group = "fr.azur" val version: String by project val minecraftVersion: String by project val paperVersion: String by project val skinRestorerVersion: String by project val voiceChatVersion: String by project val voiceChatApiVersion: String by project val luckPermsVersion: String by project repositories { mavenCentral() gradlePluginPortal() maven("https://repo.papermc.io/repository/maven-public/") { name = "papermc-repo" } maven("https://oss.sonatype.org/content/groups/public/") { name = "sonatype" } maven("https://repo.codemc.org/repository/maven-public/") { name = "codemc" } maven("https://maven.maxhenkel.de/repository/public") { name = "svc" } } dependencies { paperweight.paperDevBundle("$minecraftVersion-$paperVersion") compileOnly("net.skinsrestorer:skinsrestorer-api:$skinRestorerVersion") compileOnly("de.maxhenkel.voicechat:voicechat-api:$voiceChatApiVersion") implementation(kotlin("stdlib-jdk8")) implementation(kotlin("reflect")) } val targetJavaVersion = 21 kotlin { jvmToolchain(targetJavaVersion) } tasks { runServer { downloadPlugins { modrinth("skinsrestorer", skinRestorerVersion) modrinth("luckperms", "v$luckPermsVersion-bukkit") modrinth("simple-voice-chat", "bukkit-$voiceChatVersion") } minecraftVersion(minecraftVersion) } build { dependsOn("shadowJar") } processResources { val props = mapOf("version" to version) inputs.properties(props) filteringCharset = "UTF-8" filesMatching("paper-plugin.yml") { expand(props) } } shadowJar { archiveBaseName.set("tcoww") minimize() } }