Files
BoatParty/build.gradle.kts
Michael BurgessandClaude Sonnet 5 b56d4b064b
CI / build (push) Successful in 1m58s
Add player stat collection with pluggable YAML/MySQL storage
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]>
2026-08-08 09:00:13 -04:00

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)
}
}