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:
@@ -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
|
||||||
|
|||||||
@@ -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())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user