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

import org.bukkit.Bukkit
import java.nio.ByteBuffer
import java.util.UUID

@Suppress("UsePropertyAccessSyntax")
fun getPlayerNameOrDefault(uuid: UUID?, ifUnknown: String? = null): String {
    return uuid
        ?.let { getPlayerName(it) }
        ?: ifUnknown
        ?: ":unknown_name:"
}

fun getPlayerName(uuid: UUID): String? {
    return Bukkit.getOfflinePlayer(uuid)?.takeIf { it.isValid }?.name
}

fun UUID.toByteArray(): ByteArray =
    ByteBuffer.allocate(16).apply {
        putLong(mostSignificantBits)
        putLong(leastSignificantBits)
    }.array()

fun ByteArray.toUUID(): UUID = ByteBuffer.wrap(this).run { UUID(long, long) }