fix: websocket disconnect due to missing field

used to crash because status was claimed to not be optional (when status = "None" is is however absent)

Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
Infi 2025-04-11 20:57:50 +02:00
parent f680ad9a7c
commit 5724680c54
2 changed files with 12 additions and 4 deletions

View File

@ -454,11 +454,11 @@ object RealtimeSocket {
if (existing == null && userRelationshipFrame.user.id != null) {
RevoltAPI.userCache[userRelationshipFrame.user.id] =
userRelationshipFrame.user.copy(
relationship = userRelationshipFrame.status
relationship = userRelationshipFrame.status ?: "None"
)
} else if (existing != null && userRelationshipFrame.user.id != null) {
val merged = existing.mergeWithPartial(userRelationshipFrame.user).copy(
relationship = userRelationshipFrame.status
relationship = userRelationshipFrame.status ?: "None"
)
RevoltAPI.userCache[userRelationshipFrame.user.id] = merged
} else {

View File

@ -1,6 +1,14 @@
package chat.revolt.api.realtime.frames.receivable
import chat.revolt.api.schemas.*
import chat.revolt.api.schemas.Channel
import chat.revolt.api.schemas.Embed
import chat.revolt.api.schemas.Emoji
import chat.revolt.api.schemas.Member
import chat.revolt.api.schemas.Message
import chat.revolt.api.schemas.Role
import chat.revolt.api.schemas.Server
import chat.revolt.api.schemas.ServerUserChoice
import chat.revolt.api.schemas.User
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonObject
@ -222,7 +230,7 @@ data class UserRelationshipFrame(
val type: String = "UserRelationship",
val id: String,
val user: User,
val status: String
val status: String? = null
)
typealias EmojiCreateFrame = Emoji