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() 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( "simplymcdb config helpreload: reload the config from config.ymlfetch: fetch the config from the databaseupload: upload the current config to the database" ) sender.sendMessage(help) } ), Route("help") { sender, _ -> sender.sendMM( "simplymcdb helpconfig: configre the pluginactivate: when the plugin is disabled, activate itdeactivate: 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 -> "●" State.DISCONNECTED -> "■" State.DISABLED -> "○" }} simply-minecraft-database" ) sender.sendMM( "status: ${when (App.instance.enabled) { State.ACTIVE -> "active" State.DISCONNECTED -> "disconnected" State.DISABLED -> "disabled"}}" ) sender.sendMM( "- database test: ${if (Database.ping()) "success" else "failed"}" ) sender.sendMM( "- 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( "[SMCDB] simplymcdb is disabled.
Run /smcdb check to check the status." ) State.DISCONNECTED -> sender.sendMM( "[SMCDB] simplymcdb is enabled but disconnected.
Run /smcdb check to check the status." ) else -> { if (!isRegistered(sender.uniqueId)) { sender.sendMM( "[SMCDB] The inventory of the other servers will be overwritten." + "Are you sure you want to register?" + "/smcdb confirm to confirm." ) } else { sender.sendMM("[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("[SMCDB] Successfully registered.") } else { sender.sendMM("[SMCDB] simplymcdb is disabled.") } } else -> { sender.sendMM("[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( // "[SMCDB] simplymcdb is disabled.
Run // /smcdb check to check the status." // ) // State.DISCONNECTED -> // sender.sendMM( // "[SMCDB] simplymcdb is enabled but // disconnected.
Run /smcdb check to check the status." // ) // else -> { // if (isRegistered(sender.uniqueId)) { // update(sender) // sender.sendMM("[SMCDB] Successfully updated.") // } else { // sender.sendMM("[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( // "[SMCDB] simplymcdb is disabled.
Run // /smcdb check to check the status." // ) // State.DISCONNECTED -> // sender.sendMM( // "[SMCDB] simplymcdb is enabled but // disconnected.
Run /smcdb check to check the status." // ) // else -> { // if (isRegistered(sender.uniqueId)) { // sender.sendMM( // "[SMCDB] Welcome back, // ${sender.name}.Fetching your data..." // ) // fetch(sender) // } else { // sender.sendMM( // "[SMCDB] Welcome, ${sender.name}." // + // "SMCDB is active but you have already // played before." + // "Run /smcdb register to // register yourself." // ) // } // } // } // }, )