diff --git a/client/decoders.go b/client/decoders.go index baa19a37..6928c7d8 100644 --- a/client/decoders.go +++ b/client/decoders.go @@ -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())) } diff --git a/client/global.go b/client/global.go index 70ab161f..60abfd6a 100644 --- a/client/global.go +++ b/client/global.go @@ -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:] {