|
|
|
@ -85,29 +85,40 @@ public class ForwardEntity : IMessageEntity
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (elem.SrcMsg is not { } src) return null;
|
|
|
|
if (elem.SrcMsg is not { } src) return null;
|
|
|
|
|
|
|
|
|
|
|
|
var reserve = Serializer.Deserialize<SrcMsg.Preserve>(src.PbReserve.AsSpan());
|
|
|
|
if (src.SourceMsg != null)
|
|
|
|
return new ForwardEntity(MessagePacker.Parse(new PushMsgBody
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
ResponseHead = new ResponseHead
|
|
|
|
var chain = MessagePacker.Parse(Serializer.Deserialize<PushMsgBody>(src.SourceMsg.AsSpan()), true);
|
|
|
|
{
|
|
|
|
return new ForwardEntity(chain);
|
|
|
|
FromUin = (uint)src.SenderUin,
|
|
|
|
}
|
|
|
|
FromUid = reserve.SenderUid,
|
|
|
|
|
|
|
|
Grp = reserve.ReceiverUid != null ? null : new ResponseGrp { }
|
|
|
|
if (src.PbReserve != null)
|
|
|
|
},
|
|
|
|
{
|
|
|
|
ContentHead = new ContentHead
|
|
|
|
var reserve = Serializer.Deserialize<SrcMsg.Preserve>(src.PbReserve.AsSpan());
|
|
|
|
{
|
|
|
|
return new ForwardEntity(MessagePacker.Parse(new PushMsgBody
|
|
|
|
Random = (long?)(reserve.MessageId & 0xFFFFFFFF),
|
|
|
|
|
|
|
|
Sequence = src.OrigSeqs?.Count > 0 ? src.OrigSeqs[0] : 0,
|
|
|
|
|
|
|
|
Timestamp = src.Time,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
Body = new MessageBody
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
RichText = new RichText
|
|
|
|
ResponseHead = new ResponseHead
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
FromUin = (uint)src.SenderUin,
|
|
|
|
|
|
|
|
FromUid = reserve.SenderUid,
|
|
|
|
|
|
|
|
Grp = reserve.ReceiverUid != null ? null : new ResponseGrp { }
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
ContentHead = new ContentHead
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Random = (long?)(reserve.MessageId & 0xFFFFFFFF),
|
|
|
|
|
|
|
|
Sequence = (src.OrigSeqs != null && src.OrigSeqs.Count > 0) ? src.OrigSeqs[0] : 0,
|
|
|
|
|
|
|
|
Timestamp = src.Time,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
Body = new MessageBody
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Elems = src.Elems ?? new List<Elem>(),
|
|
|
|
RichText = new RichText
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Elems = src.Elems ?? new List<Elem>(),
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, true));
|
|
|
|
}, true));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new ForwardEntity(new MessageChain(0, 0, (src.OrigSeqs != null && src.OrigSeqs.Count > 0 ? src.OrigSeqs[0] : 0), 0));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void IMessageEntity.SetSelfUid(string selfUid) => _selfUid = selfUid;
|
|
|
|
void IMessageEntity.SetSelfUid(string selfUid) => _selfUid = selfUid;
|
|
|
|
|