summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/util/BukkitUtil.kt
blob: c7d813bd64797267e18d2d7753e1dd7b7e83ac63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package io.dico.parcels2.util

import io.dico.parcels2.util.ext.isValid
import org.bukkit.Bukkit
import org.bukkit.OfflinePlayer
import java.lang.IllegalArgumentException
import java.util.UUID

fun getPlayerName(uuid: UUID): String? = getOfflinePlayer(uuid)?.name

fun getOfflinePlayer(uuid: UUID): OfflinePlayer? = Bukkit.getOfflinePlayer(uuid).takeIf { it.isValid }

fun getOfflinePlayer(name: String): OfflinePlayer? = Bukkit.getOfflinePlayer(name).takeIf { it.isValid }

fun isServerThread(): Boolean = Thread.currentThread().name == "Server thread"

fun isPlayerNameValid(name: String): Boolean =
    name.length in 3..16
    && name.find { it !in "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_" } == null

fun checkPlayerNameValid(name: String) {
    if (!isPlayerNameValid(name)) throw IllegalArgumentException("Invalid player name: $name")
}