Fix Instant crashes

Uses Java's Instant instead since its more stable and other places
seemed to use Java's time APIs as well.

(cherry picked from commit 096f1da17cbdd39a4cace3aea0121228be30e576)
This commit is contained in:
Aaron
2025-08-16 06:19:02 -04:00
committed by Linnea Gräf
parent e3b4611da9
commit d4ad7c937a
3 changed files with 6 additions and 7 deletions

View File

@@ -6,7 +6,7 @@ package moe.nea.firmament.apis
import io.github.moulberry.repo.constants.Leveling import io.github.moulberry.repo.constants.Leveling
import io.github.moulberry.repo.data.Rarity import io.github.moulberry.repo.data.Rarity
import kotlinx.datetime.Instant import java.time.Instant
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.UseSerializers import kotlinx.serialization.UseSerializers

View File

@@ -2,7 +2,7 @@
package moe.nea.firmament.util.json package moe.nea.firmament.util.json
import kotlinx.datetime.Instant import java.time.Instant
import kotlinx.serialization.KSerializer import kotlinx.serialization.KSerializer
import kotlinx.serialization.descriptors.PrimitiveKind import kotlinx.serialization.descriptors.PrimitiveKind
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
@@ -13,10 +13,10 @@ import kotlinx.serialization.encoding.Encoder
object InstantAsLongSerializer : KSerializer<Instant> { object InstantAsLongSerializer : KSerializer<Instant> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("InstantAsLongSerializer", PrimitiveKind.LONG) override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("InstantAsLongSerializer", PrimitiveKind.LONG)
override fun deserialize(decoder: Decoder): Instant { override fun deserialize(decoder: Decoder): Instant {
return Instant.fromEpochMilliseconds(decoder.decodeLong()) return Instant.ofEpochMilli(decoder.decodeLong())
} }
override fun serialize(encoder: Encoder, value: Instant) { override fun serialize(encoder: Encoder, value: Instant) {
encoder.encodeLong(value.toEpochMilliseconds()) encoder.encodeLong(value.toEpochMilli())
} }
} }

View File

@@ -5,9 +5,8 @@ package moe.nea.firmament.util.mc
import com.mojang.authlib.GameProfile import com.mojang.authlib.GameProfile
import com.mojang.authlib.minecraft.MinecraftProfileTexture import com.mojang.authlib.minecraft.MinecraftProfileTexture
import com.mojang.authlib.properties.Property import com.mojang.authlib.properties.Property
import java.time.Instant
import java.util.UUID import java.util.UUID
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.UseSerializers import kotlinx.serialization.UseSerializers
import net.minecraft.component.DataComponentTypes import net.minecraft.component.DataComponentTypes
@@ -32,7 +31,7 @@ data class MinecraftTexturesPayloadKt(
val profileId: UUID? = null, val profileId: UUID? = null,
val profileName: String? = null, val profileName: String? = null,
val isPublic: Boolean = true, val isPublic: Boolean = true,
val timestamp: Instant = Clock.System.now(), val timestamp: Instant = Instant.now(),
) )
fun GameProfile.setTextures(textures: MinecraftTexturesPayloadKt) { fun GameProfile.setTextures(textures: MinecraftTexturesPayloadKt) {