summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/util/UUIDUtil.kt23
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