mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
commit
f2d0c6a546
@ -363,16 +363,13 @@ func decodeGroupMessagePacket(c *QQClient, _ uint16, payload []byte) (interface{
|
||||
var builder *groupMessageBuilder // TODO: 支持多SEQ
|
||||
i, ok := c.groupMsgBuilders.Load(pkt.Message.Content.DivSeq)
|
||||
if !ok {
|
||||
builder = &groupMessageBuilder{
|
||||
MessageSeq: pkt.Message.Content.DivSeq,
|
||||
MessageCount: pkt.Message.Content.PkgNum,
|
||||
}
|
||||
builder = &groupMessageBuilder{}
|
||||
c.groupMsgBuilders.Store(pkt.Message.Content.DivSeq, builder)
|
||||
} else {
|
||||
builder = i.(*groupMessageBuilder)
|
||||
}
|
||||
builder.MessageSlices = append(builder.MessageSlices, pkt.Message)
|
||||
if int32(len(builder.MessageSlices)) >= builder.MessageCount {
|
||||
if int32(len(builder.MessageSlices)) >= pkt.Message.Content.PkgNum {
|
||||
c.groupMsgBuilders.Delete(pkt.Message.Content.DivSeq)
|
||||
c.dispatchGroupMessage(c.parseGroupMessage(builder.build()))
|
||||
}
|
||||
|
@ -63,8 +63,6 @@ type DeviceInfoFile struct {
|
||||
}
|
||||
|
||||
type groupMessageBuilder struct {
|
||||
MessageSeq int32
|
||||
MessageCount int32
|
||||
MessageSlices []*msg.Message
|
||||
}
|
||||
|
||||
@ -434,7 +432,7 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
|
||||
|
||||
func (b *groupMessageBuilder) build() *msg.Message {
|
||||
sort.Slice(b.MessageSlices, func(i, j int) bool {
|
||||
return b.MessageSlices[i].Content.PkgIndex < b.MessageSlices[i].Content.PkgIndex
|
||||
return b.MessageSlices[i].Content.PkgIndex < b.MessageSlices[j].Content.PkgIndex
|
||||
})
|
||||
base := b.MessageSlices[0]
|
||||
for _, m := range b.MessageSlices[1:] {
|
||||
|
Loading…
x
Reference in New Issue
Block a user