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.data.Rarity
import kotlinx.datetime.Instant
import java.time.Instant
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.UseSerializers

View File

@@ -2,7 +2,7 @@
package moe.nea.firmament.util.json
import kotlinx.datetime.Instant
import java.time.Instant
import kotlinx.serialization.KSerializer
import kotlinx.serialization.descriptors.PrimitiveKind
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
@@ -13,10 +13,10 @@ import kotlinx.serialization.encoding.Encoder
object InstantAsLongSerializer : KSerializer<Instant> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("InstantAsLongSerializer", PrimitiveKind.LONG)
override fun deserialize(decoder: Decoder): Instant {
return Instant.fromEpochMilliseconds(decoder.decodeLong())
return Instant.ofEpochMilli(decoder.decodeLong())
}
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.minecraft.MinecraftProfileTexture
import com.mojang.authlib.properties.Property
import java.time.Instant
import java.util.UUID
import kotlinx.datetime.Clock
import kotlinx.datetime.Instant
import kotlinx.serialization.Serializable
import kotlinx.serialization.UseSerializers
import net.minecraft.component.DataComponentTypes
@@ -32,7 +31,7 @@ data class MinecraftTexturesPayloadKt(
val profileId: UUID? = null,
val profileName: String? = null,
val isPublic: Boolean = true,
val timestamp: Instant = Clock.System.now(),
val timestamp: Instant = Instant.now(),
)
fun GameProfile.setTextures(textures: MinecraftTexturesPayloadKt) {