diff options
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt')
-rw-r--r-- | src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt b/src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt new file mode 100644 index 0000000..5bd7f92 --- /dev/null +++ b/src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt @@ -0,0 +1,23 @@ +package io.dico.parcels2.util + +import org.bukkit.Bukkit +import java.nio.ByteBuffer +import java.util.* + +@Suppress("UsePropertyAccessSyntax") +fun getPlayerName(uuid: UUID?, ifUnknown: String? = null): String { + return uuid?.let { Bukkit.getOfflinePlayer(uuid)?.takeIf { it.isOnline() || it.hasPlayedBefore() }?.name } + ?: ifUnknown + ?: ":unknown_name:" +} + +fun UUID?.toByteArray(): ByteArray? = this?.let { + ByteBuffer.allocate(16).apply { + putLong(mostSignificantBits) + putLong(leastSignificantBits) + }.array() +} + +fun ByteArray?.toUUID(): UUID? = this?.let { + ByteBuffer.wrap(it).run { UUID(long, long) } +}
\ No newline at end of file |