203 lines
12 KiB
Kotlin
203 lines
12 KiB
Kotlin
package net.hareworks.simplymcdb.command
|
|
|
|
import com.github.michaelbull.result.*
|
|
import net.hareworks.kommandlib.*
|
|
import net.hareworks.simplymcdb.*
|
|
import net.hareworks.simplymcdb.database.Database
|
|
import net.kyori.adventure.audience.Audience
|
|
import net.kyori.adventure.text.minimessage.MiniMessage
|
|
import org.bukkit.entity.Player
|
|
|
|
public fun Audience.sendMM(message: String) {
|
|
this.sendMessage(MiniMessage.miniMessage().deserialize(message))
|
|
}
|
|
|
|
val command_buffer = mutableMapOf<java.util.UUID, String>()
|
|
public val smcdb =
|
|
Route("smcdb") { sender, _ -> sender.sendMessage("simptlymcdb command") }
|
|
.addArgs(
|
|
Route("config") { sender, _ ->
|
|
(sender as Player).performCommand("smcdb config help")
|
|
}
|
|
.addArgs(
|
|
Route("reload") { sender, _ ->
|
|
sender.sendMessage("reloading config...")
|
|
Config.reload()
|
|
sender.sendMessage("reloaded.")
|
|
},
|
|
Route("fetch") { sender, _ ->
|
|
sender.sendMessage("fetching config...")
|
|
},
|
|
Route("upload") { sender, _ ->
|
|
sender.sendMessage("uploading config...")
|
|
},
|
|
Route("help") { sender, _ ->
|
|
var help =
|
|
MiniMessage.miniMessage()
|
|
.deserialize(
|
|
"<red>simplymcdb config help<newline><gray>reload: <green>reload the config from config.yml<newline><gray>fetch: <green>fetch the config from the database<newline><gray>upload: <green>upload the current config to the database"
|
|
)
|
|
sender.sendMessage(help)
|
|
}
|
|
),
|
|
Route("help") { sender, _ ->
|
|
sender.sendMM(
|
|
"<red>simplymcdb help<newline><gray>config: <green>configre the plugin<newline><gray>activate: <green>when the plugin is disabled, activate it<newline><gray>deactivate: <green>when the plugin is enabled, deactivate it"
|
|
)
|
|
},
|
|
Route("activate") { sender, _ ->
|
|
if (App.instance.enabled == State.ACTIVE) {
|
|
sender.sendMessage("simplymcdb is already enabled.")
|
|
return@Route
|
|
}
|
|
App.instance.enable()
|
|
sender.sendMessage("simplymcdb enabled.")
|
|
},
|
|
Route("deactivate") { sender, _ ->
|
|
if (App.instance.enabled == State.DISABLED) {
|
|
sender.sendMessage("simplymcdb is already disabled.")
|
|
return@Route
|
|
}
|
|
App.instance.disable()
|
|
sender.sendMessage("simplymcdb disabled.")
|
|
},
|
|
Route("database") { _, _ -> }
|
|
.addArgs(
|
|
Route("init") { sender, _ ->
|
|
Database.initialize()
|
|
sender.sendMessage("database initialized.")
|
|
},
|
|
Route("reset") { sender, _ ->
|
|
Database.reset()
|
|
sender.sendMessage("database reset.")
|
|
},
|
|
),
|
|
Route("check") { sender, _ ->
|
|
sender.sendMM(
|
|
"${when (App.instance.enabled) {
|
|
State.ACTIVE -> "<green>●"
|
|
State.DISCONNECTED -> "<yellow>■"
|
|
State.DISABLED -> "<red>○"
|
|
}}<white> simply-minecraft-database"
|
|
)
|
|
sender.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(
|
|
"<gray>- <white>config test: ${if (Config.config.getBoolean("enabled")) "enabled" else "disabled"}"
|
|
)
|
|
},
|
|
Route("register") { sender, _ ->
|
|
if (sender !is Player) {
|
|
sender.sendMM("This command is only available for players.")
|
|
return@Route
|
|
} else
|
|
when (App.instance.enabled) {
|
|
State.DISABLED ->
|
|
sender.sendMM(
|
|
"<red>[SMCDB] simplymcdb is disabled.<br>Run /smcdb check to check the status."
|
|
)
|
|
State.DISCONNECTED ->
|
|
sender.sendMM(
|
|
"<red>[SMCDB] simplymcdb is enabled but disconnected.<br>Run /smcdb check to check the status."
|
|
)
|
|
else -> {
|
|
if (!isRegistered(sender.uniqueId)) {
|
|
sender.sendMM(
|
|
"<gray>[SMCDB] <red>The inventory of the other servers will be overwritten.<newline>" +
|
|
"Are you sure you want to register?<newline>" +
|
|
"<green>/smcdb confirm<gray> to confirm."
|
|
)
|
|
} else {
|
|
sender.sendMM("<gray>[SMCDB] You are already registered.")
|
|
}
|
|
}
|
|
}
|
|
},
|
|
Route("confirm") { sender, _ ->
|
|
if (sender !is Player) return@Route
|
|
when (command_buffer[sender.uniqueId]) {
|
|
"register" -> {
|
|
if (App.instance.enabled == State.ACTIVE) {
|
|
register(sender)
|
|
sender.sendMM("<gray>[SMCDB] Successfully registered.")
|
|
} else {
|
|
sender.sendMM("<red>[SMCDB] simplymcdb is disabled.")
|
|
}
|
|
}
|
|
else -> {
|
|
sender.sendMM("<red>[SMCDB] Invalid command.")
|
|
}
|
|
}
|
|
command_buffer.remove(sender.uniqueId)
|
|
}
|
|
// Route("update") { sender, _ ->
|
|
// if (sender !is Player) {
|
|
// sender.sendMM("This command is only available for players.")
|
|
// return@Route
|
|
// } else
|
|
// when (App.instance.enabled) {
|
|
// State.DISABLED ->
|
|
// sender.sendMM(
|
|
// "<red>[SMCDB] simplymcdb is disabled.<br>Run
|
|
// /smcdb check to check the status."
|
|
// )
|
|
// State.DISCONNECTED ->
|
|
// sender.sendMM(
|
|
// "<red>[SMCDB] simplymcdb is enabled but
|
|
// disconnected.<br>Run /smcdb check to check the status."
|
|
// )
|
|
// else -> {
|
|
// if (isRegistered(sender.uniqueId)) {
|
|
// update(sender)
|
|
// sender.sendMM("<gray>[SMCDB] Successfully updated.")
|
|
// } else {
|
|
// sender.sendMM("<red>[SMCDB] You are not registered.")
|
|
// }
|
|
// }
|
|
// }
|
|
// },
|
|
// Route("fetch") { sender, _ ->
|
|
// if (sender !is Player) {
|
|
// sender.sendMM("This command is only available for players.")
|
|
// return@Route
|
|
// } else
|
|
// when (App.instance.enabled) {
|
|
// State.DISABLED ->
|
|
// sender.sendMM(
|
|
// "<red>[SMCDB] simplymcdb is disabled.<br>Run
|
|
// /smcdb check to check the status."
|
|
// )
|
|
// State.DISCONNECTED ->
|
|
// sender.sendMM(
|
|
// "<red>[SMCDB] simplymcdb is enabled but
|
|
// disconnected.<br>Run /smcdb check to check the status."
|
|
// )
|
|
// else -> {
|
|
// if (isRegistered(sender.uniqueId)) {
|
|
// sender.sendMM(
|
|
// "<gray>[SMCDB] Welcome back,
|
|
// ${sender.name}.<newline>Fetching your data..."
|
|
// )
|
|
// fetch(sender)
|
|
// } else {
|
|
// sender.sendMM(
|
|
// "<gray>[SMCDB] Welcome, ${sender.name}.<newline>"
|
|
// +
|
|
// "SMCDB is active but you have already
|
|
// played before.<newline>" +
|
|
// "Run <green>/smcdb register<gray> to
|
|
// register yourself."
|
|
// )
|
|
// }
|
|
// }
|
|
// }
|
|
// },
|
|
)
|