69 lines
2.4 KiB
Kotlin
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)
|
|
}
|
|
}
|