File tree Expand file tree Collapse file tree 3 files changed +17
-1
lines changed
surf-api-core/surf-api-core-api/src/main/kotlin/dev/slne/surf/surfapi/core/api/serializer Expand file tree Collapse file tree 3 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.ldt.Loca
1818import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.offset.OffsetDateTimeCodec
1919import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.zdt.ZonedDateTimeCodec
2020import dev.slne.surf.surfapi.core.api.serializer.java.datetime.time.local.LocalTimeCodec
21+ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.zone.id.ZoneIdCodec
2122import dev.slne.surf.surfapi.core.api.serializer.java.uri.URICodec
2223import dev.slne.surf.surfapi.core.api.serializer.java.uuid.JavaUUIDCodec
2324import dev.slne.surf.surfapi.core.api.serializer.spongepowered.math.matrix.m2d.SpongeMatrix2dCodec
@@ -101,5 +102,6 @@ object SurfCodecs {
101102 val OFFSET_DATE_TIME = OffsetDateTimeCodec .CODEC
102103 val ZONED_DATE_TIME = ZonedDateTimeCodec .CODEC
103104 val LOCAL_TIME = LocalTimeCodec .CODEC
105+ val ZONE_ID = ZoneIdCodec .CODEC
104106 // endregion
105107}
Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.ldt.Loca
1919import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.offset.OffsetDateTimeSerializer
2020import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.zdt.ZonedDateTimeSerializer
2121import dev.slne.surf.surfapi.core.api.serializer.java.datetime.time.local.LocalTimeSerializer
22+ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.zone.id.ZonedIdSerializer
2223import dev.slne.surf.surfapi.core.api.serializer.java.uri.URISerializer
2324import dev.slne.surf.surfapi.core.api.serializer.java.uuid.JavaUUIDSerializer
2425import dev.slne.surf.surfapi.core.api.serializer.spongepowered.math.matrix.m2d.SpongeMatrix2dSerializer
@@ -106,6 +107,7 @@ object SurfSerializerModule {
106107 contextual(OffsetDateTimeSerializer )
107108 contextual(ZonedDateTimeSerializer )
108109 contextual(LocalTimeSerializer )
110+ contextual(ZonedIdSerializer )
109111 }
110112
111113 val all = SerializersModule {
Original file line number Diff line number Diff line change 11package dev.slne.surf.surfapi.core.api.serializer.java.datetime.zone.id
22
33import com.mojang.serialization.Codec
4+ import com.mojang.serialization.DataResult
5+ import java.time.DateTimeException
46import java.time.ZoneId
7+ import java.time.zone.ZoneRulesException
58
69object ZoneIdCodec {
7- val CODEC : Codec <ZoneId > = Codec .STRING .xmap({ ZoneId .of(it) }, { it.id })
10+ val CODEC : Codec <ZoneId > = Codec .STRING
11+ .comapFlatMap({ id ->
12+ try {
13+ DataResult .success(ZoneId .of(id))
14+ } catch (e: ZoneRulesException ) {
15+ DataResult .error { " Unknown ZoneID $id : ${e.message} " }
16+ } catch (e: DateTimeException ) {
17+ DataResult .error { " Invalid ZoneID $id : ${e.message} " }
18+ }
19+ }, ZoneId ::getId)
820}
You can’t perform that action at this time.
0 commit comments