Mrs4s / go-cqhttp

cqhttp的golang实现,轻量、原生跨平台.
GNU Affero General Public License v3.0
10.36k stars 1.63k forks source link

[Bug]: 获取多层合并消息出现的报错 #1604

Open icat233 opened 2 years ago

icat233 commented 2 years ago

请确保您已阅读以上注意事项,并勾选下方的确认框。

go-cqhttp 版本

v1.0.0-rc3

运行环境

Windows (64)

运行架构

AMD64

连接方式

WebSocket (反向)

使用协议

0 | iPad

重现步骤

将合并消息在别处进行多层套娃后,再转发给bot,使用“get_forward_msg”的api会出现这个报错 但是如果是先将单层的合并消息转发给bot,再进行套娃再发给bot,就不会报错 截图_20220730140104

期望的结果是什么?

能正常获取到多层合并转发消息的内容

实际的结果是什么?

报错断连

简单的复现代码/链接(可选)

No response

日志记录(可选)

[2022-07-30 13:45:08] [INFO]: 收到群 。。..() 内 幻雪๓ ‮~喵‭() 的消息: [CQ:forward,id=uIBnBJc9H75xBH84L2DwyyX+Q1vYD+S5bsrE5fogZMcdd19pnEaFDysYEHd5gAsW] (-1011371788) 
[2022-07-30 13:45:08] [INFO]: 处置WS命令时发生无法恢复的异常:runtime error: invalid memory address or nil pointer dereference
goroutine 198 [running]:
runtime/debug.Stack()
    runtime/debug/stack.go:24 +0x65
github.com/Mrs4s/go-cqhttp/server.(*wsConn).handleRequest.func1()
    github.com/Mrs4s/go-cqhttp/server/websocket.go:466 +0x45
panic({0x718f00, 0xc4e180})
    runtime/panic.go:838 +0x207
github.com/Mrs4s/MiraiGo/client.(*forwardMsgLinker).link(0xc0003cdc40, {0x7d2db2?, 0xc000608228?})
    github.com/Mrs4s/MiraiGo@v0.0.0-20220621083050-ae8c187aa59d/client/multimsg.go:167 +0x1e6
github.com/Mrs4s/MiraiGo/client.(*QQClient).GetForwardMessage(0x42?, {0xc00063c282?, 0x40?})
    github.com/Mrs4s/MiraiGo@v0.0.0-20220621083050-ae8c187aa59d/client/multimsg.go:188 +0x165
github.com/Mrs4s/go-cqhttp/coolq.(*CQBot).CQGetForwardMessage(0xc000238180, {0xc00063c282?, 0x42?})
    github.com/Mrs4s/go-cqhttp/coolq/api.go:1578 +0x45
github.com/Mrs4s/go-cqhttp/modules/api.(*Caller).call(0xc00006a200, {0xc00038a48c, 0xf}, {0x8d8440, 0xc000078a50})
    github.com/Mrs4s/go-cqhttp/modules/api/api.go:93 +0x31e5
github.com/Mrs4s/go-cqhttp/modules/api.(*Caller).Call(0xc00006a200, {0xc00038a48c, 0xf}, {0x8d8440, 0xc000078a50})
    github.com/Mrs4s/go-cqhttp/modules/api/caller.go:34 +0xaa
github.com/Mrs4s/go-cqhttp/server.(*wsConn).handleRequest(0xc00020c198, 0x0?, {0xc00038a480?, 0x0?, 0x1?})
    github.com/Mrs4s/go-cqhttp/server/websocket.go:473 +0x4d8
github.com/Mrs4s/go-cqhttp/server.(*websocketClient).listenAPI.func2(0x0?)
    github.com/Mrs4s/go-cqhttp/server/websocket.go:320 +0x95
created by github.com/Mrs4s/go-cqhttp/server.(*websocketClient).listenAPI
    github.com/Mrs4s/go-cqhttp/server/websocket.go:318 +0x1b2

[2022-07-30 13:45:08] [WARNING]: 监听反向WS Universal时出现错误: read tcp 127.0.0.1:58780->127.0.0.1:8080: use of closed network connection 
[2022-07-30 13:45:08] [INFO]: 处置WS命令时发生无法恢复的异常:runtime error: invalid memory address or nil pointer dereference
goroutine 47 [running]:
runtime/debug.Stack()
    runtime/debug/stack.go:24 +0x65
github.com/Mrs4s/go-cqhttp/server.(*wsConn).handleRequest.func1()
    github.com/Mrs4s/go-cqhttp/server/websocket.go:466 +0x45
panic({0x718f00, 0xc4e180})
    runtime/panic.go:838 +0x207
github.com/Mrs4s/MiraiGo/client.(*forwardMsgLinker).link(0xc000567c40, {0x7d2db2?, 0xc000382840?})
    github.com/Mrs4s/MiraiGo@v0.0.0-20220621083050-ae8c187aa59d/client/multimsg.go:167 +0x1e6
github.com/Mrs4s/MiraiGo/client.(*QQClient).GetForwardMessage(0x42?, {0xc00063c322?, 0x40?})
    github.com/Mrs4s/MiraiGo@v0.0.0-20220621083050-ae8c187aa59d/client/multimsg.go:188 +0x165
github.com/Mrs4s/go-cqhttp/coolq.(*CQBot).CQGetForwardMessage(0xc000238180, {0xc00063c322?, 0x42?})
    github.com/Mrs4s/go-cqhttp/coolq/api.go:1578 +0x45
github.com/Mrs4s/go-cqhttp/modules/api.(*Caller).call(0xc00006a200, {0xc00024470c, 0xf}, {0x8d8440, 0xc000078b90})
    github.com/Mrs4s/go-cqhttp/modules/api/api.go:93 +0x31e5
github.com/Mrs4s/go-cqhttp/modules/api.(*Caller).Call(0xc00006a200, {0xc00024470c, 0xf}, {0x8d8440, 0xc000078b90})
    github.com/Mrs4s/go-cqhttp/modules/api/caller.go:34 +0xaa
github.com/Mrs4s/go-cqhttp/server.(*wsConn).handleRequest(0xc00020c198, 0x0?, {0xc000244700?, 0x0?, 0x1?})
    github.com/Mrs4s/go-cqhttp/server/websocket.go:473 +0x4d8
github.com/Mrs4s/go-cqhttp/server.(*websocketClient).listenAPI.func2(0x0?)
    github.com/Mrs4s/go-cqhttp/server/websocket.go:320 +0x95
created by github.com/Mrs4s/go-cqhttp/server.(*websocketClient).listenAPI
    github.com/Mrs4s/go-cqhttp/server/websocket.go:318 +0x1b2

[2022-07-30 13:45:09] [WARNING]: 向反向WS Universal服务器推送 Event 时出现错误: write tcp 127.0.0.1:58780->127.0.0.1:8080: use of closed network connection 
[2022-07-30 13:45:12] [INFO]: 开始尝试连接到反向WebSocket Universal服务器: ws://127.0.0.1:8080/onebot/v11/ws 
[2022-07-30 13:45:12] [INFO]: 已连接到反向WebSocket Universal服务器 ws://127.0.0.1:8080/onebot/v11/ws

补充说明(可选)

No response

Saplonily commented 1 year ago

同, 我这边不能手动转发只有单条的多条转发所以只试了多条. 如果消息里面全是纯文本消息是能正常获取的, 但是一旦有转发消息在就会报错, 其他什么image,at,reply不会, 堆栈与你的基本一致