aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2025-08-16 06:19:02 -0400
committerLinnea Gräf <nea@nea.moe>2025-08-17 13:56:47 +0200
commitd4ad7c937a380fea675592053ad6a2ee32be9bd3 (patch)
tree618e20eebf29abd8c642044cff01c9a2789a2361
parente3b4611da91527c39fbc9ac501f2e131170bf43d (diff)
downloadFirmament-d4ad7c937a380fea675592053ad6a2ee32be9bd3.tar.gz
Firmament-d4ad7c937a380fea675592053ad6a2ee32be9bd3.tar.bz2
Firmament-d4ad7c937a380fea675592053ad6a2ee32be9bd3.zip
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)
-rw-r--r--src/main/kotlin/apis/Profiles.kt2
-rw-r--r--src/main/kotlin/util/json/InstantAsLongSerializer.kt6
-rw-r--r--src/main/kotlin/util/mc/SkullItemData.kt5
3 files changed, 6 insertions, 7 deletions
diff --git a/src/main/kotlin/apis/Profiles.kt b/src/main/kotlin/apis/Profiles.kt
index 156de89..a6c334b 100644
--- a/src/main/kotlin/apis/Profiles.kt
+++ b/src/main/kotlin/apis/Profiles.kt
@@ -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
diff --git a/src/main/kotlin/util/json/InstantAsLongSerializer.kt b/src/main/kotlin/util/json/InstantAsLongSerializer.kt
index ad738dc..51b5f0a 100644
--- a/src/main/kotlin/util/json/InstantAsLongSerializer.kt
+++ b/src/main/kotlin/util/json/InstantAsLongSerializer.kt
@@ -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())
}
}
diff --git a/src/main/kotlin/util/mc/SkullItemData.kt b/src/main/kotlin/util/mc/SkullItemData.kt
index 1b7dcba..3a4c508 100644
--- a/src/main/kotlin/util/mc/SkullItemData.kt
+++ b/src/main/kotlin/util/mc/SkullItemData.kt
@@ -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) {