CI / build (push) Successful in 1m58s
Tracks races played, wins, total laps, and best times per player and per race, recorded off the main thread after each finish. Backed by a StatsStorage interface with two implementations: the default YamlStatsStorage (stats.yml, zero setup) and MySqlStatsStorage (HikariCP-pooled, auto-creates its tables, configured via config.yml). MySQL init failures fall back to YAML rather than blocking plugin startup. Adds /boatparty stats and /boatparty top commands. Bundles and relocates HikariCP + MySQL Connector/J via shadow (bumped to 9.0.2, the prior 8.3.5 couldn't shade Java 25 class files). Co-Authored-By: Claude Sonnet 5 <[email protected]>
55 lines
1.1 KiB
Kotlin
55 lines
1.1 KiB
Kotlin
plugins {
|
|
java
|
|
id("com.gradleup.shadow") version "9.0.2"
|
|
}
|
|
|
|
group = "us.tss3.boatparty"
|
|
version = "1.0.0"
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion.set(JavaLanguageVersion.of(25))
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
maven("https://repo.papermc.io/repository/maven-public/")
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly("io.papermc.paper:paper-api:26.2.build.111-stable")
|
|
|
|
implementation("com.zaxxer:HikariCP:7.1.0")
|
|
implementation("com.mysql:mysql-connector-j:26.7.0")
|
|
}
|
|
|
|
tasks {
|
|
compileJava {
|
|
options.encoding = "UTF-8"
|
|
options.release.set(25)
|
|
}
|
|
|
|
processResources {
|
|
filesMatching("plugin.yml") {
|
|
expand("version" to project.version)
|
|
}
|
|
}
|
|
|
|
shadowJar {
|
|
archiveClassifier.set("")
|
|
archiveBaseName.set("BoatParty")
|
|
|
|
relocate("com.zaxxer.hikari", "us.tss3.boatparty.libs.hikari")
|
|
relocate("com.mysql", "us.tss3.boatparty.libs.mysql")
|
|
|
|
minimize {
|
|
exclude(dependency("com.mysql:mysql-connector-j:.*"))
|
|
}
|
|
}
|
|
|
|
build {
|
|
dependsOn(shadowJar)
|
|
}
|
|
}
|