Skip to content

嵌套转发消息没有正确处理 #128

@NFWSA

Description

@NFWSA

问题描述

发送多重嵌套的转发消息时,第一层里面的转发消息不会被正常处理发送

复现

语言是 Typescript,用的是 mirai-ts ,对接到插件 mirai-api-http 最终到 mirai 发送的消息

构建只有两条普通文字消息消息的转发消息,如下

mirai_.api.sendGroupMessage([{
  type: 'Forward',
  nodeList: [
    {
      senderId: 0,
      senderName: '',
      time: 0,
      messageChain: [{ type: 'Plain', text: 'hello' }]
    },
    {
      senderId: 0,
      senderName: '',
      time: 0,
      messageChain: [{ type: 'Plain', text: 'overflow' }]
    },
  ]
}], group_id, );

调用发送接口可以正常发送出去

但是构建含有嵌套转发消息的转发消息,如下例,内部的转发消息会消失
(如果转发消息内只有嵌套的转发消息,比如删掉下面外层 nodeList 中的首尾两条 Plain 消息,会发送失败)

mirai_.api.sendGroupMessage([{
  type: 'Forward',
  nodeList: [
    {
      senderId: 0,
      senderName: '',
      time: 0,
      messageChain: [{ type: 'Plain', text: 'hello' }]
    },
    {
      type: 'Forward',
      nodeList: [
        {
          senderId: 0,
          senderName: '',
          time: 0,
          messageChain: [{ type: 'Plain', text: 'inner hello' }]
        },
        {
          senderId: 0,
          senderName: '',
          time: 0,
          messageChain: [{ type: 'Plain', text: 'inner forward' }]
        }
      ]
    },
    {
      senderId: 0,
      senderName: '',
      time: 0,
      messageChain: [{ type: 'Plain', text: 'overflow' }]
    },
  ]
}], group_id);

Overflow 版本

1.0.3

其他组件版本

17:17:09 [INFO] iTX Technologies Mirai Console Loader version 2.1.2-dacb7ee
17:17:10 [INFO] Package: net.mamoe:mirai-console Channel: maven-stable Type: libs Version: 2.16.0 Locked: false
17:17:10 [INFO] Package: net.mamoe:mirai-console-terminal Channel: maven-stable Type: libs Version: 2.16.0 Locked: false
17:17:10 [INFO] Package: org.itxtech:mcl-addon Channel: maven-stable Type: plugins Version: 2.1.1 Locked: false
17:17:10 [INFO] Package: top.mrxiaom.mirai:overflow-core-all Channel: maven-nightly Type: libs Version: 1.0.3 Locked: false
17:17:10 [INFO] Package: net.mamoe:chat-command Channel: maven-stable Type: plugins Version: 0.6.0 Locked: false
17:17:10 [INFO] Package: net.mamoe:mirai-api-http Channel: maven-stable Type: plugins Version: 2.10.0 Locked: false

系统日志


网络日志

// 第一部分,只包含两条文字消息的转发消息,对应日志如下
2025-02-12 19:31:01 D/Onebot: [Send] --> {"action":"send_group_forward_msg","params":{"group_id":****,"messages":[{"type":"node","data":{"uin":0,"user_id":"0","name":"","nickname":"","content":[{"type":"text","data":{"text":"hello"}}]},"time":0},{"type":"node","data":{"uin":0,"user_id":"0","name":"","nickname":"","content":[{"type":"text","data":{"text":"overflow"}}]},"time":0}]},"echo":1902}
2025-02-12 19:31:01 D/Onebot: [Recv] <-- {"self_id":****,"user_id":****,"time":1739359861,"message_id":957153670,"message_seq":957153670,"real_id":957153670,"message_type":"private","sender":{"user_id":****,"nickname":"****","card":""},"raw_message":"hello","font":14,"sub_type":"friend","message":[{"type":"text","data":{"text":"hello"}}],"message_format":"array","post_type":"message_sent","message_sent_type":"self","target_id":****}
2025-02-12 19:31:02 D/Onebot: [Recv] <-- {"self_id":****,"user_id":****,"time":1739359862,"message_id":2026768430,"message_seq":2026768430,"real_id":2026768430,"message_type":"private","sender":{"user_id":****,"nickname":"****","card":""},"raw_message":"overflow","font":14,"sub_type":"friend","message":[{"type":"text","data":{"text":"overflow"}}],"message_format":"array","post_type":"message_sent","message_sent_type":"self","target_id":****}
2025-02-12 19:31:02 D/Onebot: [Recv] <-- {"status":"ok","retcode":0,"data":{"message_id":1748006601},"message":"","wording":"","echo":1902}
2025-02-12 19:31:02 D/Onebot: [Recv] <-- {"self_id":****,"user_id":****,"time":1739359862,"message_id":1748006601,"message_seq":1748006601,"real_id":1748006601,"message_type":"group","sender":{"user_id":****,"nickname":"****","card":"","role":"owner"},"raw_message":"[CQ:json,data={\"app\":\"com.tencent.multimsg\"&#44;\"config\":{\"autosize\":1&#44;\"forward\":1&#44;\"round\":1&#44;\"type\":\"normal\"&#44;\"width\":300}&#44;\"desc\":\"&#91;聊天记录&#93;\"&#44;\"extra\":\"{\\\"filename\\\":\\\"25e8deff-cfbd-435a-ada6-da3f552a3f92\\\"&#44;\\\"tsum\\\":2}\\n\"&#44;\"meta\":{\"detail\":{\"news\":&#91;{\"text\":\"****: hello\"}&#44;{\"text\":\"****: overflow\"}&#93;&#44;\"resid\":\"KBv1vaWH9ncc8JPG1LHMnciRyRQkmvBl94LeRkL3pcqysFqa+htWrlqSu8Ap45aI\"&#44;\"source\":\"****的聊天记录\"&#44;\"summary\":\"查看2条转发消息\"&#44;\"uniseq\":\"25e8deff-cfbd-435a-ada6-da3f552a3f92\"}}&#44;\"prompt\":\"&#91;聊天记录&#93;\"&#44;\"ver\":\"0.0.0.5\"&#44;\"view\":\"contact\"}\n]","font":14,"sub_type":"normal","message":[{"type":"json","data":{"data":"{\"app\":\"com.tencent.multimsg\",\"config\":{\"autosize\":1,\"forward\":1,\"round\":1,\"type\":\"normal\",\"width\":300},\"desc\":\"[聊天记录]\",\"extra\":\"{\\\"filename\\\":\\\"25e8deff-cfbd-435a-ada6-da3f552a3f92\\\",\\\"tsum\\\":2}\\n\",\"meta\":{\"detail\":{\"news\":[{\"text\":\"****: hello\"},{\"text\":\"****: overflow\"}],\"resid\":\"KBv1vaWH9ncc8JPG1LHMnciRyRQkmvBl94LeRkL3pcqysFqa+htWrlqSu8Ap45aI\",\"source\":\"****的聊天记录\",\"summary\":\"查看2条转发消息\",\"uniseq\":\"25e8deff-cfbd-435a-ada6-da3f552a3f92\"}},\"prompt\":\"[聊天记录]\",\"ver\":\"0.0.0.5\",\"view\":\"contact\"}\n"}}],"message_format":"array","post_type":"message_sent","message_sent_type":"self","group_id":****,"target_id":****}

// 第二部分,包含两条文字消息,一条包含两条文字消息的转发消息,的转发消息,对应日志如下
2025-02-12 19:31:02 D/Onebot: [Send] --> {"action":"send_group_forward_msg","params":{"group_id":****,"messages":[{"type":"node","data":{"uin":0,"user_id":"0","name":"","nickname":"","content":[{"type":"text","data":{"text":"hello"}}]},"time":0},{"type":"node","data":{"uin":0,"user_id":"0","name":"","nickname":"","content":[]},"time":0},{"type":"node","data":{"uin":0,"user_id":"0","name":"","nickname":"","content":[{"type":"text","data":{"text":"overflow"}}]},"time":0}]},"echo":1903}
2025-02-12 19:31:02 D/Onebot: [Recv] <-- {"self_id":****,"user_id":****,"time":1739359862,"message_id":618999057,"message_seq":618999057,"real_id":618999057,"message_type":"private","sender":{"user_id":****,"nickname":"****","card":""},"raw_message":"hello","font":14,"sub_type":"friend","message":[{"type":"text","data":{"text":"hello"}}],"message_format":"array","post_type":"message_sent","message_sent_type":"self","target_id":****}
2025-02-12 19:31:03 D/Onebot: [Recv] <-- {"self_id":****,"user_id":****,"time":1739359863,"message_id":1703402045,"message_seq":1703402045,"real_id":1703402045,"message_type":"private","sender":{"user_id":****,"nickname":"****","card":""},"raw_message":"overflow","font":14,"sub_type":"friend","message":[{"type":"text","data":{"text":"overflow"}}],"message_format":"array","post_type":"message_sent","message_sent_type":"self","target_id":****}
2025-02-12 19:31:03 D/Onebot: [Recv] <-- {"status":"ok","retcode":0,"data":{"message_id":1154684707},"message":"","wording":"","echo":1903}
2025-02-12 19:31:03 D/Onebot: [Recv] <-- {"self_id":****,"user_id":****,"time":1739359863,"message_id":1154684707,"message_seq":1154684707,"real_id":1154684707,"message_type":"group","sender":{"user_id":****,"nickname":"****","card":"","role":"owner"},"raw_message":"[CQ:json,data={\"app\":\"com.tencent.multimsg\"&#44;\"config\":{\"autosize\":1&#44;\"forward\":1&#44;\"round\":1&#44;\"type\":\"normal\"&#44;\"width\":300}&#44;\"desc\":\"&#91;聊天记录&#93;\"&#44;\"extra\":\"{\\\"filename\\\":\\\"f9ae1755-fb3f-411d-9a23-7e8980842799\\\"&#44;\\\"tsum\\\":2}\\n\"&#44;\"meta\":{\"detail\":{\"news\":&#91;{\"text\":\"****: hello\"}&#44;{\"text\":\"****: overflow\"}&#93;&#44;\"resid\":\"Fwu8TEeFg+9aojMmmif0/H9XApyiMzQGJS3wZwowV7LinA/9G5kHD4lsXYrlpVU5\"&#44;\"source\":\"****的聊天记录\"&#44;\"summary\":\"查看2条转发消息\"&#44;\"uniseq\":\"f9ae1755-fb3f-411d-9a23-7e8980842799\"}}&#44;\"prompt\":\"&#91;聊天记录&#93;\"&#44;\"ver\":\"0.0.0.5\"&#44;\"view\":\"contact\"}\n]","font":14,"sub_type":"normal","message":[{"type":"json","data":{"data":"{\"app\":\"com.tencent.multimsg\",\"config\":{\"autosize\":1,\"forward\":1,\"round\":1,\"type\":\"normal\",\"width\":300},\"desc\":\"[聊天记录]\",\"extra\":\"{\\\"filename\\\":\\\"f9ae1755-fb3f-411d-9a23-7e8980842799\\\",\\\"tsum\\\":2}\\n\",\"meta\":{\"detail\":{\"news\":[{\"text\":\"****: hello\"},{\"text\":\"****: overflow\"}],\"resid\":\"Fwu8TEeFg+9aojMmmif0/H9XApyiMzQGJS3wZwowV7LinA/9G5kHD4lsXYrlpVU5\",\"source\":\"****的聊天记录\",\"summary\":\"查看2条转发消息\",\"uniseq\":\"f9ae1755-fb3f-411d-9a23-7e8980842799\"}},\"prompt\":\"[聊天记录]\",\"ver\":\"0.0.0.5\",\"view\":\"contact\"}\n"}}],"message_format":"array","post_type":"message_sent","message_sent_type":"self","group_id":****,"target_id":****}

补充信息

对应第一条消息,预期和实际都如下图,是正确的
Image

对应第二条消息,预期和实际如下图,不一致(上方消息是预期,下方消息是实际)
Image

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    question对错误或其它问题进行提问

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions