feat: Add skull parser
This commit is contained in:
@@ -10,6 +10,7 @@ import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
import moe.nea.firmament.util.parseDashlessUUID
|
||||
import moe.nea.firmament.util.parsePotentiallyDashlessUUID
|
||||
|
||||
object DashlessUUIDSerializer : KSerializer<UUID> {
|
||||
override val descriptor: SerialDescriptor =
|
||||
@@ -17,10 +18,7 @@ object DashlessUUIDSerializer : KSerializer<UUID> {
|
||||
|
||||
override fun deserialize(decoder: Decoder): UUID {
|
||||
val str = decoder.decodeString()
|
||||
if ("-" in str) {
|
||||
return UUID.fromString(str)
|
||||
}
|
||||
return parseDashlessUUID(str)
|
||||
return parsePotentiallyDashlessUUID(str)
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: UUID) {
|
||||
|
||||
@@ -3,6 +3,12 @@ package moe.nea.firmament.util
|
||||
import java.math.BigInteger
|
||||
import java.util.UUID
|
||||
|
||||
fun parsePotentiallyDashlessUUID(unknownFormattedUUID: String): UUID {
|
||||
if ("-" in unknownFormattedUUID)
|
||||
return UUID.fromString(unknownFormattedUUID)
|
||||
return parseDashlessUUID(unknownFormattedUUID)
|
||||
}
|
||||
|
||||
fun parseDashlessUUID(dashlessUuid: String): UUID {
|
||||
val most = BigInteger(dashlessUuid.substring(0, 16), 16)
|
||||
val least = BigInteger(dashlessUuid.substring(16, 32), 16)
|
||||
|
||||
Reference in New Issue
Block a user