File tree Expand file tree Collapse file tree 3 files changed +14
-2
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 +14
-2
lines changed Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.instant.
1717import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.ldt.LocalDateTimeCodec
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
20+ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.time.local.LocalTimeCodec
2021import dev.slne.surf.surfapi.core.api.serializer.java.uri.URICodec
2122import dev.slne.surf.surfapi.core.api.serializer.java.uuid.JavaUUIDCodec
2223import dev.slne.surf.surfapi.core.api.serializer.spongepowered.math.matrix.m2d.SpongeMatrix2dCodec
@@ -99,5 +100,6 @@ object SurfCodecs {
99100 val LOCAL_DATE_TIME = LocalDateTimeCodec .CODEC
100101 val OFFSET_DATE_TIME = OffsetDateTimeCodec .CODEC
101102 val ZONED_DATE_TIME = ZonedDateTimeCodec .CODEC
103+ val LOCAL_TIME = LocalTimeCodec .CODEC
102104 // endregion
103105}
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.instant.
1818import dev.slne.surf.surfapi.core.api.serializer.java.datetime.datetime.ldt.LocalDateTimeSerializer
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
21+ import dev.slne.surf.surfapi.core.api.serializer.java.datetime.time.local.LocalTimeSerializer
2122import dev.slne.surf.surfapi.core.api.serializer.java.uri.URISerializer
2223import dev.slne.surf.surfapi.core.api.serializer.java.uuid.JavaUUIDSerializer
2324import dev.slne.surf.surfapi.core.api.serializer.spongepowered.math.matrix.m2d.SpongeMatrix2dSerializer
@@ -104,6 +105,7 @@ object SurfSerializerModule {
104105 contextual(LocalDateTimeSerializer )
105106 contextual(OffsetDateTimeSerializer )
106107 contextual(ZonedDateTimeSerializer )
108+ contextual(LocalTimeSerializer )
107109 }
108110
109111 val all = SerializersModule {
Original file line number Diff line number Diff line change 11package dev.slne.surf.surfapi.core.api.serializer.java.datetime.time.local
22
33import com.mojang.serialization.Codec
4+ import com.mojang.serialization.DataResult
5+ import java.time.DateTimeException
46import java.time.LocalTime
57
68object LocalTimeCodec {
7- val CODEC : Codec <LocalTime > =
8- Codec .LONG .xmap({ LocalTime .ofNanoOfDay(it) }, { it.toNanoOfDay() })
9+ val CODEC : Codec <LocalTime > = Codec .LONG
10+ .comapFlatMap({ nanoOfDay ->
11+ try {
12+ DataResult .success(LocalTime .ofNanoOfDay(nanoOfDay))
13+ } catch (e: DateTimeException ) {
14+ DataResult .error { " Invalid time $nanoOfDay : ${e.message} " }
15+ }
16+ }, LocalTime ::toNanoOfDay)
917}
You can’t perform that action at this time.
0 commit comments