plugins { id("java") id("io.github.goooler.shadow") version("8.1.8") } group = "dev.loki" version = "1.3.0" description = "LoParkour - Advanced parkour plugin for Minecraft" java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } repositories { mavenCentral() maven { name = "papermc" url = uri("https://repo.papermc.io/repository/maven-public/") } maven { name = "spigot-repo" url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") } maven { name = "jitpack" url = uri("https://jitpack.io") } maven { name = "maven-central" url = uri("https://oss.sonatype.org/content/groups/public") } maven { name = "placeholderapi" url = uri("https://repo.extendedclip.com/content/repositories/placeholderapi/") } maven { name = "mv-repo" url = uri("https://repo.onarandombox.com/content/groups/public/") } maven { name = "dmulloy2-repo" url = uri("https://repo.dmulloy2.net/repository/public/") } maven { name = "codemc-repo" url = uri("https://repo.codemc.io/repository/maven-public/") } maven { name = "opencollab-snapshot-repo" url = uri("https://repo.opencollab.dev/maven-snapshots/") } // For ConfigUpdater dependency maven { name = "codemc-snapshots" url = uri("https://repo.codemc.io/repository/maven-snapshots/") } } dependencies { // Spigot API compileOnly("org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT") // LoLib Core implementation(files("libs/lolib-2.0.1.jar")) // Shaded dependencies implementation("io.papermc:paperlib:1.0.7") implementation("com.google.code.gson:gson:2.10.1") implementation("org.bstats:bstats-bukkit:3.2.1") // Provided dependencies (plugins) compileOnly("me.clip:placeholderapi:2.11.6") compileOnly("com.github.MilkBowl:VaultAPI:1.7") compileOnly("me.filoghost.holographicdisplays:holographicdisplays-api:3.0.0-SNAPSHOT") compileOnly("org.geysermc.floodgate:api:2.0-SNAPSHOT") // Annotations compileOnly("org.jetbrains:annotations:24.1.0") // Testing testImplementation("org.junit.jupiter:junit-jupiter:5.11.0-M1") testRuntimeOnly("org.junit.platform:junit-platform-launcher") } tasks.shadowJar { archiveClassifier.set("") archiveFileName.set("LoParkour-${project.version}.jar") // Relocate shaded dependencies relocate("dev.lolib", "dev.loki.loparkour.lib.lolib") relocate("io.papermc.lib", "dev.loki.loparkour.lib.paperlib") relocate("com.google.gson", "dev.loki.loparkour.lib.gson") relocate("org.bstats", "dev.loki.loparkour.lib.bstats") // Minimize jar size minimize() } tasks.named("build") { dependsOn(tasks.named("shadowJar")) } tasks.withType { filesMatching(listOf("plugin.yml", "config.yml")) { expand( "version" to project.version, "description" to project.description ) } } tasks.withType { useJUnitPlatform() } tasks.withType { options.encoding = "UTF-8" options.release = 21 } tasks.withType { options.encoding = "UTF-8" } // Default task defaultTasks("clean", "build")