Skip to content

Commit fcb049b

Browse files
committed
feat: add JavaUUIDStringSerializer for UUID serialization and bump version to 1.21.10-2.42.0
- Introduced `JavaUUIDStringSerializer` for UUID serialization to/from strings with a custom format. - Added `SerializableStringUUID` type alias for seamless usage. - Updated `gradle.properties` to version 1.21.10-2.42.0.
1 parent 68e28a1 commit fcb049b

File tree

5 files changed

+69
-1
lines changed

5 files changed

+69
-1
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
77
javaVersion=21
88
mcVersion=1.21.10
99
group=dev.slne.surf
10-
version=1.21.10-2.41.0
10+
version=1.21.10-2.42.0
1111
relocationPrefix=dev.slne.surf.surfapi.libs
1212
snapshot=false

surf-api-bukkit/surf-api-bukkit-api/api/surf-api-bukkit-api.api

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13505,6 +13505,17 @@ public final class dev/slne/surf/surfapi/core/api/serializer/java/uuid/JavaUUIDS
1350513505
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/util/UUID;)V
1350613506
}
1350713507

13508+
public final class dev/slne/surf/surfapi/core/api/serializer/java/uuid/JavaUUIDStringSerializer : kotlinx/serialization/KSerializer {
13509+
public static final field INSTANCE Ldev/slne/surf/surfapi/core/api/serializer/java/uuid/JavaUUIDStringSerializer;
13510+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
13511+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/util/UUID;
13512+
public final fun fromString (Ljava/lang/String;)Ljava/util/UUID;
13513+
public final fun fromUUID (Ljava/util/UUID;)Ljava/lang/String;
13514+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
13515+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
13516+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/util/UUID;)V
13517+
}
13518+
1350813519
public final class dev/slne/surf/surfapi/core/api/serializer/kotlin/KotlinDurationCodec {
1350913520
public static final field INSTANCE Ldev/slne/surf/surfapi/core/api/serializer/kotlin/KotlinDurationCodec;
1351013521
public final fun getCODEC ()Lcom/mojang/serialization/Codec;

surf-api-core/surf-api-core-api/api/surf-api-core-api.api

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8132,6 +8132,17 @@ public final class dev/slne/surf/surfapi/core/api/serializer/java/uuid/JavaUUIDS
81328132
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/util/UUID;)V
81338133
}
81348134

8135+
public final class dev/slne/surf/surfapi/core/api/serializer/java/uuid/JavaUUIDStringSerializer : kotlinx/serialization/KSerializer {
8136+
public static final field INSTANCE Ldev/slne/surf/surfapi/core/api/serializer/java/uuid/JavaUUIDStringSerializer;
8137+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
8138+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/util/UUID;
8139+
public final fun fromString (Ljava/lang/String;)Ljava/util/UUID;
8140+
public final fun fromUUID (Ljava/util/UUID;)Ljava/lang/String;
8141+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
8142+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
8143+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/util/UUID;)V
8144+
}
8145+
81358146
public final class dev/slne/surf/surfapi/core/api/serializer/kotlin/KotlinDurationCodec {
81368147
public static final field INSTANCE Ldev/slne/surf/surfapi/core/api/serializer/kotlin/KotlinDurationCodec;
81378148
public final fun getCODEC ()Ldev/slne/surf/surfapi/libs/mojang/serialization/Codec;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package dev.slne.surf.surfapi.core.api.serializer.java.uuid
2+
3+
import kotlinx.serialization.KSerializer
4+
import kotlinx.serialization.Serializable
5+
import kotlinx.serialization.descriptors.PrimitiveKind
6+
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
7+
import kotlinx.serialization.encoding.Decoder
8+
import kotlinx.serialization.encoding.Encoder
9+
import java.util.*
10+
11+
typealias SerializableStringUUID = @Serializable(with = JavaUUIDStringSerializer::class) UUID
12+
13+
object JavaUUIDStringSerializer : KSerializer<UUID> {
14+
override val descriptor = PrimitiveSerialDescriptor("surfapi.StringUuid", PrimitiveKind.STRING)
15+
16+
override fun serialize(encoder: Encoder, value: UUID) {
17+
encoder.encodeString(value.toString())
18+
}
19+
20+
override fun deserialize(decoder: Decoder): UUID {
21+
return fromString(decoder.decodeString())
22+
}
23+
24+
fun fromUUID(value: UUID): String {
25+
return value.toString().replace("-", "")
26+
}
27+
28+
fun fromString(input: String): UUID {
29+
return UUID.fromString(
30+
input.replaceFirst(
31+
"(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})".toRegex(), "$1-$2-$3-$4-$5"
32+
)
33+
)
34+
}
35+
}

surf-api-velocity/surf-api-velocity-api/api/surf-api-velocity-api.api

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11438,6 +11438,17 @@ public final class dev/slne/surf/surfapi/core/api/serializer/java/uuid/JavaUUIDS
1143811438
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/util/UUID;)V
1143911439
}
1144011440

11441+
public final class dev/slne/surf/surfapi/core/api/serializer/java/uuid/JavaUUIDStringSerializer : kotlinx/serialization/KSerializer {
11442+
public static final field INSTANCE Ldev/slne/surf/surfapi/core/api/serializer/java/uuid/JavaUUIDStringSerializer;
11443+
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
11444+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/util/UUID;
11445+
public final fun fromString (Ljava/lang/String;)Ljava/util/UUID;
11446+
public final fun fromUUID (Ljava/util/UUID;)Ljava/lang/String;
11447+
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
11448+
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
11449+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/util/UUID;)V
11450+
}
11451+
1144111452
public final class dev/slne/surf/surfapi/core/api/serializer/kotlin/KotlinDurationCodec {
1144211453
public static final field INSTANCE Ldev/slne/surf/surfapi/core/api/serializer/kotlin/KotlinDurationCodec;
1144311454
public final fun getCODEC ()Lcom/mojang/serialization/Codec;

0 commit comments

Comments
 (0)