Skip to content
This repository was archived by the owner on Oct 12, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Lagrange.OneBot/Database/MessageChainFormatter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public class MessageChainFormatter : IMessagePackFormatter<MessageChain?>

public void Serialize(ref MessagePackWriter writer, MessageChain? value, MessagePackSerializerOptions options)
{
MessagePackSerializer.Serialize(ref writer, (MessageRecord?)value, options);
if (value == null) MessagePackSerializer.Serialize(ref writer, null as MessageRecord, options);
else MessagePackSerializer.Serialize(ref writer, (MessageRecord)value, options);
}
}
6 changes: 2 additions & 4 deletions Lagrange.OneBot/Database/MessageRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public static int CalcMessageHash(ulong msgId, uint seq)
return ((ushort)seq << 16) | (ushort)msgId;
}

public static implicit operator MessageRecord?(MessageChain? chain) => chain == null ? null : new()
public static implicit operator MessageRecord(MessageChain chain) => new()
{
Id = CalcMessageHash(chain.MessageId, chain.Sequence),
Type = chain.Type,
Expand All @@ -92,10 +92,8 @@ MessageType.Temp or
Entities = MessagePackSerializer.Serialize<List<IMessageEntity>>(chain, OPTIONS)
};

public static implicit operator MessageChain?(MessageRecord? record)
public static implicit operator MessageChain(MessageRecord record)
{
if (record == null) return null;

var chain = record.Type switch
{
MessageType.Group => new MessageChain(
Expand Down