simply-minecraft-db/src/main/kotlin/net/hareworks/simplymcdb/Event.kt

69 lines
2.4 KiB
Kotlin

package net.hareworks.simplymcdb
import net.kyori.adventure.text.minimessage.MiniMessage
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerJoinEvent
import org.bukkit.event.player.PlayerQuitEvent
import org.jetbrains.exposed.sql.*
public object EventListener : Listener {
@EventHandler
fun onJoin(event: PlayerJoinEvent) {
if (event.player.hasPermission("simplymcdb.admin")) {
when (App.instance.enabled) {
State.DISABLED -> {
val mm =
MiniMessage.miniMessage()
.deserialize(
"<red>[SMCDB:admin] simplymcdb is disabled.<br>Run /smcdb check to check the status."
)
event.player.sendMessage(mm)
}
State.DISCONNECTED -> {
val mm =
MiniMessage.miniMessage()
.deserialize(
"<red>[SMCDB:admin] simplymcdb is enabled but disconnected.<br>Run /smcdb check to check the status."
)
event.player.sendMessage(mm)
}
else -> {
val mm =
MiniMessage.miniMessage()
.deserialize("<green>[SMCDB:admin] simplymcdb is enabled.")
event.player.sendMessage(mm)
}
}
}
if (App.instance.enabled !== State.ACTIVE) return
/*-----------+---------+----------+
| | played | not |
+------------+---------+----------+
| registered | fetch | fetch |
| not | confirm | register |
+------------+---------+---------*/
if (isRegistered(event.player.uniqueId)) fetch(event.player)
else if (event.player.hasPlayedBefore()) {
register(event.player)
} else {
event.player.sendMessage(
MiniMessage.miniMessage()
.deserialize(
"<gray>[SMCDB] Welcome, ${event.player.name}.<newline>" +
"SMCDB is active but you have already played before.<newline>" +
"Run <green>/smcdb register<gray> to register yourself."
)
)
}
}
@EventHandler
fun onQuit(event: PlayerQuitEvent) {
if (App.instance.enabled !== State.ACTIVE) return
if (isRegistered(event.player.uniqueId)) update(event.player)
}
}