feat: 依存関係のimplementation、コマンド実行時の非同期化

This commit is contained in:
Keisuke Hirata 2025-11-30 18:16:37 +09:00
parent 47e202a613
commit ae5bc8a0f0
2 changed files with 28 additions and 16 deletions

View File

@ -19,8 +19,8 @@ repositories {
val exposedVersion = "0.54.0"
dependencies {
compileOnly("io.papermc.paper:paper-api:1.21.10-R0.1-SNAPSHOT")
compileOnly("org.jetbrains.kotlin:kotlin-stdlib")
compileOnly("net.hareworks:kommand-lib:1.1")
implementation("org.jetbrains.kotlin:kotlin-stdlib")
implementation("net.hareworks:kommand-lib:1.1")
implementation("net.kyori:adventure-api:4.17.0")
implementation("net.kyori:adventure-text-minimessage:4.17.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
@ -37,7 +37,13 @@ tasks {
archiveBaseName.set("SimplyMCDB")
}
shadowJar {
minimize()
minimize {
exclude(dependency("org.jetbrains.exposed:exposed-core"))
exclude(dependency("org.jetbrains.exposed:exposed-dao"))
exclude(dependency("org.jetbrains.exposed:exposed-jdbc"))
exclude(dependency("org.jetbrains.exposed:exposed-kotlin-datetime"))
exclude(dependency("org.postgresql:postgresql"))
}
archiveClassifier.set("min")
relocate("de.tr7zw.changeme.nbtapi", "net.hareworks.simplymcdb.libs.nbtapi")
}
@ -52,12 +58,4 @@ paper {
authors = listOf(
"Hare-K02"
)
serverDependencies {
register("kommand-lib") {
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("permits-lib") {
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
}
}

View File

@ -197,22 +197,36 @@ public fun registerCommands(plugin: JavaPlugin): KommandLib =
literal("check") {
executes {
sender.sendMM(
val commandSender = sender
commandSender.sendMM(
"${when (App.instance.enabled) {
State.ACTIVE -> "<green>●"
State.DISCONNECTED -> "<yellow>■"
State.DISABLED -> "<red>○"
}}<white> simply-minecraft-database")
sender.sendMM(
commandSender.sendMM(
"status: ${when (App.instance.enabled) {
State.ACTIVE -> "<green>active"
State.DISCONNECTED -> "<yellow>disconnected"
State.DISABLED -> "<red>disabled"
}}")
sender.sendMM(
"<gray>- <white>database test: ${if (Database.ping()) "success" else "failed"}")
sender.sendMM(
commandSender.sendMM(
"<gray>- <white>config test: ${if (Config.config.getBoolean("enabled")) "enabled" else "disabled"}")
commandSender.sendMM("<gray>- <white>database test: <yellow>checking...")
// Run the potentially slow ping off the main thread to avoid freezing the server thread.
App.instance.server.scheduler.runTaskAsynchronously(App.instance, Runnable {
val pingSuccess = try {
Database.ping()
} catch (ex: Exception) {
App.instance.logger.warning("Database ping failed: ${ex.message}")
false
}
App.instance.server.scheduler.runTask(App.instance, Runnable {
commandSender.sendMM(
"<gray>- <white>database test result: ${if (pingSuccess) "success" else "failed"}")
})
})
}
}