diff --git a/client/group_msg.go b/client/group_msg.go index 7b580d87..d7d0c8ea 100644 --- a/client/group_msg.go +++ b/client/group_msg.go @@ -81,7 +81,8 @@ func (c *QQClient) sendGroupMessage(groupCode int64, forward bool, m *message.Se if (msgLen > 200 || imgCount > 1) && !forward && !m.Any(func(e message.IMessageElement) bool { _, ok := e.(*message.GroupVoiceElement) _, ok2 := e.(*message.ServiceElement) - return ok || ok2 + _, ok3 := e.(*message.ReplyElement) + return ok || ok2 || ok3 }) { div := int32(rand.Uint32()) fragmented := m.ToFragmented() @@ -191,6 +192,13 @@ func (c *QQClient) buildGroupSendingPacket(groupCode int64, r, pkgNum, pkgIndex, ptt = p m = []message.IMessageElement{} } + for _, elem := range m { + if i, ok := elem.(*message.ReplyElement); ok { + if h, err := c.GetGroupMessages(groupCode, int64(i.ReplySeq), int64(i.ReplySeq)); err == nil && len(h) > 0 { + i.Original = h[0].OriginalObject + } + } + } } req := &msg.SendMessageRequest{ RoutingHead: &msg.RoutingHead{Grp: &msg.Grp{GroupCode: &groupCode}},