Skip to content
This repository was archived by the owner on Oct 12, 2025. It is now read-only.
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public Task<List<BotGroup>> FetchGroups(bool refreshCache) =>

public async Task<MessageResult> SendMessage(MessageChain chain)
{
uint clientSeq = chain.ClientSequence;
ulong clientSeq = chain.ClientSequence;
ulong messageId = chain.MessageId;

var sendMessageEvent = SendMessageEvent.Create(chain);
Expand Down Expand Up @@ -601,7 +601,7 @@ public async Task<bool> SetFriendRequest(string targetUid, bool accept)
return results.Count != 0 ? ((MultiMsgUploadEvent)results[0]).ResId : null;
}

public async Task<bool> MarkAsRead(uint groupUin, string? targetUid, uint startSequence, uint time)
public async Task<bool> MarkAsRead(uint groupUin, string? targetUid, ulong startSequence, uint time)
{
var markAsReadEvent = MarkReadedEvent.Create(groupUin, targetUid, startSequence, time);
var results = await Collection.Business.SendEvent(markAsReadEvent);
Expand All @@ -614,14 +614,14 @@ public async Task<bool> SendPoke(bool isGroup, uint peerUin, uint? targetUin = n
return results.Count != 0 && results[0].ResultCode == 0;
}

public async Task<bool> SetEssenceMessage(uint groupUin, uint sequence, uint random)
public async Task<bool> SetEssenceMessage(uint groupUin, ulong sequence, uint random)
{
var setEssenceMessageEvent = SetEssenceMessageEvent.Create(groupUin, sequence, random);
var results = await Collection.Business.SendEvent(setEssenceMessageEvent);
return results.Count != 0 && ((SetEssenceMessageEvent)results[0]).ResultCode == 0;
}

public async Task<bool> RemoveEssenceMessage(uint groupUin, uint sequence, uint random)
public async Task<bool> RemoveEssenceMessage(uint groupUin, ulong sequence, uint random)
{
var removeEssenceMessageEvent = RemoveEssenceMessageEvent.Create(groupUin, sequence, random);
var results = await Collection.Business.SendEvent(removeEssenceMessageEvent);
Expand Down
8 changes: 4 additions & 4 deletions Lagrange.Core/Internal/Event/Message/GetC2cMessageEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ internal class GetC2cMessageEvent : ProtocolEvent
{
public string FriendUid { get; } = string.Empty;

public uint StartSequence { get; }
public ulong StartSequence { get; }

public uint EndSequence { get; }
public ulong EndSequence { get; }

public List<MessageChain> Chains { get; } = new();

private GetC2cMessageEvent(string friendUid, uint startSequence, uint endSequence) : base(true)
private GetC2cMessageEvent(string friendUid, ulong startSequence, ulong endSequence) : base(true)
{
FriendUid = friendUid;
StartSequence = startSequence;
Expand All @@ -24,7 +24,7 @@ private GetC2cMessageEvent(int retcode, List<MessageChain> chains) : base(retcod
Chains = chains;
}

public static GetC2cMessageEvent Create(string friendUid, uint startSequence, uint endSequence)
public static GetC2cMessageEvent Create(string friendUid, ulong startSequence, ulong endSequence)
=> new(friendUid, startSequence, endSequence);

public static GetC2cMessageEvent Result(int retcode, List<MessageChain> chains)
Expand Down
8 changes: 4 additions & 4 deletions Lagrange.Core/Internal/Event/Message/GetGroupMessageEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ internal class GetGroupMessageEvent : ProtocolEvent
{
public uint GroupUin { get; }

public uint StartSequence { get; }
public ulong StartSequence { get; }

public uint EndSequence { get; }
public ulong EndSequence { get; }

public List<MessageChain> Chains { get; } = new();

private GetGroupMessageEvent(uint groupUin, uint startSequence, uint endSequence) : base(true)
private GetGroupMessageEvent(uint groupUin, ulong startSequence, ulong endSequence) : base(true)
{
GroupUin = groupUin;
StartSequence = startSequence;
Expand All @@ -24,7 +24,7 @@ private GetGroupMessageEvent(int resultCode, List<MessageChain> chains) : base(r
Chains = chains;
}

public static GetGroupMessageEvent Create(uint groupUin, uint startSequence, uint endSequence)
public static GetGroupMessageEvent Create(uint groupUin, ulong startSequence, ulong endSequence)
=> new(groupUin, startSequence, endSequence);

public static GetGroupMessageEvent Result(int resultCode, List<MessageChain> chains)
Expand Down
6 changes: 3 additions & 3 deletions Lagrange.Core/Internal/Event/Message/MarkReadedEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ internal class MarkReadedEvent : ProtocolEvent

public string? TargetUid { get; }

public uint StartSequence { get; }
public ulong StartSequence { get; }

public uint Time { get; }

private MarkReadedEvent(uint groupUin, string? targetUid, uint startSequence, uint time) : base(true)
private MarkReadedEvent(uint groupUin, string? targetUid, ulong startSequence, uint time) : base(true)
{
GroupUin = groupUin;
TargetUid = targetUid;
Expand All @@ -20,7 +20,7 @@ private MarkReadedEvent(uint groupUin, string? targetUid, uint startSequence, ui

private MarkReadedEvent(int resultCode) : base(resultCode) { }

public static MarkReadedEvent Create(uint groupUin, string? targetUid, uint startSequence, uint time) =>
public static MarkReadedEvent Create(uint groupUin, string? targetUid, ulong startSequence, uint time) =>
new(groupUin, targetUid, startSequence, time);

public static MarkReadedEvent Result(int resultCode) => new(resultCode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ internal class RecallFriendMessageEvent : ProtocolEvent
{
public string TargetUid { get; } = string.Empty;

public uint ClientSeq { get; }
public ulong ClientSeq { get; }

public uint MessageSeq { get; }
public ulong MessageSeq { get; }

public uint Random { get; }

public uint Timestamp { get; }

private RecallFriendMessageEvent(string targetUid, uint clientSeq, uint messageSeq, uint random, uint timestamp) : base(true)
private RecallFriendMessageEvent(string targetUid, ulong clientSeq, ulong messageSeq, uint random, uint timestamp) : base(true)
{
TargetUid = targetUid;
MessageSeq = messageSeq;
Expand All @@ -23,7 +23,7 @@ private RecallFriendMessageEvent(string targetUid, uint clientSeq, uint messageS

private RecallFriendMessageEvent(int resultCode) : base(resultCode) { }

public static RecallFriendMessageEvent Create(string targetUid, uint clientSeq, uint messageSeq, uint random, uint timestamp) =>
public static RecallFriendMessageEvent Create(string targetUid, ulong clientSeq, ulong messageSeq, uint random, uint timestamp) =>
new(targetUid, clientSeq, messageSeq, random, timestamp);

public static RecallFriendMessageEvent Result(int resultCode) => new(resultCode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ internal class RecallGroupMessageEvent : ProtocolEvent
{
public uint GroupUin { get; set; }

public uint Sequence { get; set; }
public ulong Sequence { get; set; }

private RecallGroupMessageEvent(uint sequence, uint groupUin) : base(true)
private RecallGroupMessageEvent(ulong sequence, uint groupUin) : base(true)
{
Sequence = sequence;
GroupUin = groupUin;
}

private RecallGroupMessageEvent(int resultCode) : base(resultCode) { }

public static RecallGroupMessageEvent Create(uint groupUin, uint sequence) =>
public static RecallGroupMessageEvent Create(uint groupUin, ulong sequence) =>
new(sequence, groupUin);

public static RecallGroupMessageEvent Result(int resultCode) => new(resultCode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ internal class RemoveEssenceMessageEvent : ProtocolEvent
{
public uint GroupUin { get; }

public uint Sequence { get; }
public ulong Sequence { get; }

public uint Random { get; }

private RemoveEssenceMessageEvent(uint groupUin, uint sequence, uint random) : base(true)
private RemoveEssenceMessageEvent(uint groupUin, ulong sequence, uint random) : base(true)
{
GroupUin = groupUin;
Sequence = sequence;
Expand All @@ -17,7 +17,7 @@ private RemoveEssenceMessageEvent(uint groupUin, uint sequence, uint random) : b

private RemoveEssenceMessageEvent(int resultCode) : base(resultCode) { }

public static RemoveEssenceMessageEvent Create(uint groupUin, uint sequence, uint random)
public static RemoveEssenceMessageEvent Create(uint groupUin, ulong sequence, uint random)
=> new(groupUin, sequence, random);

public static RemoveEssenceMessageEvent Result(int resultCode)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ internal class SetEssenceMessageEvent : ProtocolEvent
{
public uint GroupUin { get; }

public uint Sequence { get; }
public ulong Sequence { get; }

public uint Random { get; }

private SetEssenceMessageEvent(uint groupUin, uint sequence, uint random) : base(true)
private SetEssenceMessageEvent(uint groupUin, ulong sequence, uint random) : base(true)
{
GroupUin = groupUin;
Sequence = sequence;
Expand All @@ -17,7 +17,7 @@ private SetEssenceMessageEvent(uint groupUin, uint sequence, uint random) : base

private SetEssenceMessageEvent(int resultCode) : base(resultCode) { }

public static SetEssenceMessageEvent Create(uint groupUin, uint sequence, uint random)
public static SetEssenceMessageEvent Create(uint groupUin, ulong sequence, uint random)
=> new(groupUin, sequence, random);

public static SetEssenceMessageEvent Result(int resultCode)
Expand Down
4 changes: 2 additions & 2 deletions Lagrange.Core/Internal/Packets/Message/Action/SsoGetC2cMsg.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ internal class SsoGetC2cMsg
{
[ProtoMember(2)] public string? FriendUid { get; set; }

[ProtoMember(3)] public uint StartSequence { get; set; }
[ProtoMember(3)] public ulong StartSequence { get; set; }

[ProtoMember(4)] public uint EndSequence { get; set; }
[ProtoMember(4)] public ulong EndSequence { get; set; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal class SsoGetGroupMsgInfo
{
[ProtoMember(1)] public uint GroupUin { get; set; }

[ProtoMember(2)] public uint StartSequence { get; set; }
[ProtoMember(2)] public ulong StartSequence { get; set; }

[ProtoMember(3)] public uint EndSequence { get; set; }
[ProtoMember(3)] public ulong EndSequence { get; set; }
}
4 changes: 2 additions & 2 deletions Lagrange.Core/Internal/Packets/Message/C2CRecallMsg.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal class C2CRecallMsg
[ProtoContract]
internal class C2CRecallMsgInfo
{
[ProtoMember(1)] public uint ClientSequence { get; set; }
[ProtoMember(1)] public ulong ClientSequence { get; set; }

[ProtoMember(2)] public uint Random { get; set; }

Expand All @@ -30,7 +30,7 @@ internal class C2CRecallMsgInfo

[ProtoMember(5)] public uint Field5 { get; set; } // 0

[ProtoMember(6)] public uint MessageSequence { get; set; } // 700
[ProtoMember(6)] public ulong MessageSequence { get; set; } // 700
}

[ProtoContract]
Expand Down
2 changes: 1 addition & 1 deletion Lagrange.Core/Internal/Packets/Message/ContentHead.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ internal class ContentHead

[ProtoMember(4)] public long? Random { get; set; }

[ProtoMember(5)] public uint? Sequence { get; set; }
[ProtoMember(5)] public ulong? Sequence { get; set; }

[ProtoMember(6)] public long? Timestamp { get; set; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace Lagrange.Core.Internal.Packets.Message.Element.Implementation;
[ProtoContract]
internal partial class SrcMsg
{
[ProtoMember(1)] public List<uint>? OrigSeqs { get; set; }
[ProtoMember(1)] public List<ulong>? OrigSeqs { get; set; }

[ProtoMember(2)] public ulong SenderUin { get; set; }

Expand Down
2 changes: 1 addition & 1 deletion Lagrange.Core/Internal/Packets/Message/GroupRecallMsg.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ internal class GroupRecallMsg
[ProtoContract]
internal class GroupRecallMsgField3
{
[ProtoMember(1)] public uint Sequence { get; set; }
[ProtoMember(1)] public ulong Sequence { get; set; }

[ProtoMember(2)] public uint Random { get; set; }

Expand Down
2 changes: 1 addition & 1 deletion Lagrange.Core/Internal/Packets/Message/Message.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ internal class Message

[ProtoMember(3)] public MessageBody? Body { get; set; }

[ProtoMember(4)] public uint? ClientSequence { get; set; }
[ProtoMember(4)] public ulong? ClientSequence { get; set; }

[ProtoMember(5)] public uint? Random { get; set; }

Expand Down
4 changes: 2 additions & 2 deletions Lagrange.Core/Internal/Packets/Message/SsoReadedReport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ internal class SsoReadedReportC2C

[ProtoMember(3)] public uint Time { get; set; }

[ProtoMember(4)] public uint StartSequence { get; set; }
[ProtoMember(4)] public ulong StartSequence { get; set; }
}

[ProtoContract]
internal class SsoReadedReportGroup
{
[ProtoMember(1)] public uint GroupUin { get; set; }

[ProtoMember(2)] public uint StartSequence { get; set; }
[ProtoMember(2)] public ulong StartSequence { get; set; }
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ internal class OidbSvcTrpcTcp0xEAC
{
[ProtoMember(1)] public uint GroupUin { get; set; }

[ProtoMember(2)] public uint Sequence { get; set; }
[ProtoMember(2)] public ulong Sequence { get; set; }

[ProtoMember(3)] public uint Random { get; set; }
}
6 changes: 3 additions & 3 deletions Lagrange.Core/Message/Entity/ForwardEntity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ public class ForwardEntity : IMessageEntity

public ulong MessageId { get => Chain.MessageId; }

public uint Sequence { get => Chain.Sequence; }
public ulong Sequence { get => Chain.Sequence; }

public uint ClientSequence { get => Chain.ClientSequence; }
public ulong ClientSequence { get => Chain.ClientSequence; }

public string? Uid { get => Chain.Uid; set => Chain.Uid = value; }

Expand Down Expand Up @@ -47,7 +47,7 @@ IEnumerable<Elem> PackElement(bool fake)
var result = new List<Elem> {
new() {
SrcMsg = new SrcMsg {
OrigSeqs = new List<uint> { ClientSequence != 0 ? ClientSequence : Sequence },
OrigSeqs = new List<ulong> { ClientSequence != 0 ? ClientSequence : Sequence },
SenderUin = TargetUin,
Time = (int?)new DateTimeOffset(Time).ToUnixTimeSeconds(),
Elems = Chain.Elements,
Expand Down
8 changes: 4 additions & 4 deletions Lagrange.Core/Message/MessageChain.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ public sealed class MessageChain : List<IMessageEntity>

public MessageStyle? Style { get; internal set; }

public uint Sequence { get; } // for C2C message, it's the sequence of the message, for group message, it's the sequence of the group message
public ulong Sequence { get; } // for C2C message, it's the sequence of the message, for group message, it's the sequence of the group message

public uint ClientSequence { get; } // only for C2C message
public ulong ClientSequence { get; } // only for C2C message

#region Internal Properties

Expand All @@ -40,7 +40,7 @@ public sealed class MessageChain : List<IMessageEntity>

#endregion

internal MessageChain(uint friendUin, string selfUid, string friendUid, uint targetUin = 0, uint sequence = 0, uint clientSequence = 0, ulong? messageId = null,
internal MessageChain(uint friendUin, string selfUid, string friendUid, uint targetUin = 0, ulong sequence = 0, ulong clientSequence = 0, ulong? messageId = null,
MessageType type = MessageType.Friend)
{
GroupUin = null;
Expand All @@ -65,7 +65,7 @@ internal MessageChain(uint groupUin)
Elements = new List<Elem>();
}

internal MessageChain(uint groupUin, uint friendUin, uint sequence, ulong messageId = 0)
internal MessageChain(uint groupUin, uint friendUin, ulong sequence, ulong messageId = 0)
{
GroupUin = groupUin;
FriendUin = friendUin;
Expand Down
2 changes: 1 addition & 1 deletion Lagrange.Core/Message/MessageResult.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ public class MessageResult

public uint Timestamp { get; internal set; }

public uint ClientSequence { get; internal set; }
public ulong ClientSequence { get; internal set; }
}
2 changes: 1 addition & 1 deletion Lagrange.OneBot/Database/MessageRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public partial class MessageRecord : IRealmObject

public byte[] Entities { get; set; }

public static int CalcMessageHash(ulong msgId, uint seq)
public static int CalcMessageHash(ulong msgId, ulong seq)
{
return ((ushort)seq << 16) | (ushort)msgId;
}
Expand Down
2 changes: 1 addition & 1 deletion Lagrange.OneBot/Message/Entity/ReplySegment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public override SegmentBase FromEntity(MessageChain chain, IMessageEntity entity
{
id = Realm.Do(realm => realm.All<MessageRecord>()
.FirstOrDefault(record => record.FromUinLong == chain.FriendUin
&& record.ClientSequenceLong == forward.ClientSequence)?
&& record.ClientSequenceLong == (long)forward.ClientSequence)?
.Id);
}

Expand Down