- Updated LoLib dependency to version 3.0.0 in build.gradle.kts - Added HikariCP and MySQL connector dependencies for improved database handling - Enhanced jar minimization process to exclude JDBC pool and driver - Refactored configuration management by introducing ConfigAccessor and ConfigLoader for better file handling and validation - Removed deprecated GenerationOptions class and integrated its functionality into the new structure - Improved command error handling and added cooldown hints for admin commands
150 lines
3.9 KiB
Kotlin
150 lines
3.9 KiB
Kotlin
plugins {
|
|
id("java")
|
|
id("io.github.goooler.shadow") version("8.1.8")
|
|
}
|
|
|
|
group = "dev.loki"
|
|
version = "1.3.3"
|
|
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")
|
|
|
|
// Adventure API (for Component)
|
|
compileOnly("net.kyori:adventure-api:4.14.0")
|
|
compileOnly("net.kyori:adventure-text-minimessage:4.14.0")
|
|
|
|
// LoLib Core
|
|
implementation(files("libs/lolib-3.0.0.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")
|
|
implementation("com.zaxxer:HikariCP:5.1.0")
|
|
implementation("com.mysql:mysql-connector-j:8.3.0")
|
|
|
|
// 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")
|
|
testImplementation("org.mockito:mockito-core:5.10.0")
|
|
testImplementation("org.mockito:mockito-junit-jupiter:5.10.0")
|
|
testImplementation("org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT")
|
|
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 (keep JDBC pool + driver intact)
|
|
minimize {
|
|
exclude(dependency("com.zaxxer:HikariCP:.*"))
|
|
exclude(dependency("com.mysql:mysql-connector-j:.*"))
|
|
}
|
|
}
|
|
|
|
tasks.named("build") {
|
|
dependsOn(tasks.named("shadowJar"))
|
|
}
|
|
|
|
tasks.withType<ProcessResources> {
|
|
filesMatching(listOf("plugin.yml", "config.yml")) {
|
|
expand(
|
|
"version" to project.version,
|
|
"description" to project.description
|
|
)
|
|
}
|
|
}
|
|
|
|
tasks.withType<Test> {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
tasks.withType<JavaCompile> {
|
|
options.encoding = "UTF-8"
|
|
options.release = 21
|
|
}
|
|
|
|
tasks.withType<Javadoc> {
|
|
options.encoding = "UTF-8"
|
|
}
|
|
|
|
// Default task
|
|
defaultTasks("clean", "build")
|