mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
fix: private message seq
This commit is contained in:
parent
102a5ab01a
commit
f145000ac0
@ -15,7 +15,7 @@ import (
|
|||||||
|
|
||||||
func (c *QQClient) SendPrivateMessage(target int64, m *message.SendingMessage) *message.PrivateMessage {
|
func (c *QQClient) SendPrivateMessage(target int64, m *message.SendingMessage) *message.PrivateMessage {
|
||||||
mr := int32(rand.Uint32())
|
mr := int32(rand.Uint32())
|
||||||
seq := c.nextFriendSeq()
|
var seq int32
|
||||||
t := time.Now().Unix()
|
t := time.Now().Unix()
|
||||||
imgCount := m.Count(func(e message.IMessageElement) bool { return e.Type() == message.Image })
|
imgCount := m.Count(func(e message.IMessageElement) bool { return e.Type() == message.Image })
|
||||||
msgLen := message.EstimateLength(m.Elements, 703)
|
msgLen := message.EstimateLength(m.Elements, 703)
|
||||||
@ -26,10 +26,15 @@ func (c *QQClient) SendPrivateMessage(target int64, m *message.SendingMessage) *
|
|||||||
div := int32(rand.Uint32())
|
div := int32(rand.Uint32())
|
||||||
fragmented := m.ToFragmented()
|
fragmented := m.ToFragmented()
|
||||||
for i, elems := range fragmented {
|
for i, elems := range fragmented {
|
||||||
_, pkt := c.buildFriendSendingPacket(target, c.nextFriendSeq(), mr, int32(len(fragmented)), int32(i), div, t, elems)
|
fseq := c.nextFriendSeq()
|
||||||
|
if i == 0 {
|
||||||
|
seq = fseq
|
||||||
|
}
|
||||||
|
_, pkt := c.buildFriendSendingPacket(target, fseq, mr, int32(len(fragmented)), int32(i), div, t, elems)
|
||||||
_ = c.send(pkt)
|
_ = c.send(pkt)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
seq = c.nextFriendSeq()
|
||||||
_, pkt := c.buildFriendSendingPacket(target, seq, mr, 1, 0, 0, t, m.Elements)
|
_, pkt := c.buildFriendSendingPacket(target, seq, mr, 1, 0, 0, t, m.Elements)
|
||||||
_ = c.send(pkt)
|
_ = c.send(pkt)
|
||||||
}
|
}
|
||||||
|
@ -8,11 +8,12 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/golang/protobuf/proto"
|
||||||
|
jsoniter "github.com/json-iterator/go"
|
||||||
|
|
||||||
"github.com/Mrs4s/MiraiGo/binary"
|
"github.com/Mrs4s/MiraiGo/binary"
|
||||||
"github.com/Mrs4s/MiraiGo/client/pb/msg"
|
"github.com/Mrs4s/MiraiGo/client/pb/msg"
|
||||||
"github.com/Mrs4s/MiraiGo/utils"
|
"github.com/Mrs4s/MiraiGo/utils"
|
||||||
"github.com/golang/protobuf/proto"
|
|
||||||
jsoniter "github.com/json-iterator/go"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var json = jsoniter.ConfigFastest
|
var json = jsoniter.ConfigFastest
|
||||||
@ -364,16 +365,14 @@ func ToSrcProtoElems(elems []IMessageElement) (r []*msg.Elem) {
|
|||||||
func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
|
func ParseMessageElems(elems []*msg.Elem) []IMessageElement {
|
||||||
var res []IMessageElement
|
var res []IMessageElement
|
||||||
for _, elem := range elems {
|
for _, elem := range elems {
|
||||||
if elem.SrcMsg != nil {
|
if elem.SrcMsg != nil && len(elem.SrcMsg.OrigSeqs) != 0 {
|
||||||
if len(elem.SrcMsg.OrigSeqs) != 0 {
|
r := &ReplyElement{
|
||||||
r := &ReplyElement{
|
ReplySeq: elem.SrcMsg.OrigSeqs[0],
|
||||||
ReplySeq: elem.SrcMsg.OrigSeqs[0],
|
Time: elem.SrcMsg.GetTime(),
|
||||||
Time: elem.SrcMsg.GetTime(),
|
Sender: elem.SrcMsg.GetSenderUin(),
|
||||||
Sender: elem.SrcMsg.GetSenderUin(),
|
Elements: ParseMessageElems(elem.SrcMsg.Elems),
|
||||||
Elements: ParseMessageElems(elem.SrcMsg.Elems),
|
|
||||||
}
|
|
||||||
res = append(res, r)
|
|
||||||
}
|
}
|
||||||
|
res = append(res, r)
|
||||||
}
|
}
|
||||||
if elem.TransElemInfo != nil {
|
if elem.TransElemInfo != nil {
|
||||||
if elem.TransElemInfo.GetElemType() == 24 { // QFile
|
if elem.TransElemInfo.GetElemType() == 24 { // QFile
|
||||||
|
Loading…
x
Reference in New Issue
Block a user