mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 19:17:38 +08:00
fix(client): don't fragment reply message.
This commit is contained in:
parent
5b20b58d78
commit
4128ec65a0
@ -106,8 +106,7 @@ func (c *QQClient) sendGroupMessage(groupCode int64, forward bool, m *message.Se
|
||||
})
|
||||
defer c.onGroupMessageReceipt(eid)
|
||||
imgCount := 0
|
||||
frag := false
|
||||
L:
|
||||
frag := true
|
||||
for _, e := range m.Elements {
|
||||
switch e.Type() {
|
||||
case message.Image:
|
||||
@ -116,11 +115,10 @@ L:
|
||||
forward = true
|
||||
fallthrough
|
||||
case message.Reply, message.Voice, message.Service:
|
||||
frag = true
|
||||
break L
|
||||
frag = false
|
||||
}
|
||||
}
|
||||
if !forward && !frag && (imgCount > 1 || message.EstimateLength(m.Elements) > 100) {
|
||||
if !forward && frag && (imgCount > 1 || message.EstimateLength(m.Elements) > 100) {
|
||||
div := int32(rand.Uint32())
|
||||
fragmented := m.ToFragmented()
|
||||
for i, elems := range fragmented {
|
||||
|
@ -17,12 +17,21 @@ func (c *QQClient) SendPrivateMessage(target int64, m *message.SendingMessage) *
|
||||
mr := int32(rand.Uint32())
|
||||
var seq int32
|
||||
t := time.Now().Unix()
|
||||
imgCount := m.Count(func(e message.IMessageElement) bool { return e.Type() == message.Image })
|
||||
imgCount := 0
|
||||
frag := true
|
||||
for _, e := range m.Elements {
|
||||
switch e.Type() {
|
||||
case message.Image:
|
||||
imgCount++
|
||||
case message.Reply:
|
||||
frag = false
|
||||
}
|
||||
}
|
||||
msgLen := message.EstimateLength(m.Elements)
|
||||
if msgLen > 5000 || imgCount > 50 {
|
||||
return nil
|
||||
}
|
||||
if msgLen > 300 || imgCount > 2 {
|
||||
if frag && (msgLen > 300 || imgCount > 2) {
|
||||
div := int32(rand.Uint32())
|
||||
fragmented := m.ToFragmented()
|
||||
for i, elems := range fragmented {
|
||||
|
Loading…
x
Reference in New Issue
Block a user