koishijs / koishi-plugin-adapter-onebot

OneBot 适配器
MIT License
20 stars 8 forks source link

无法捕获send事件的session #21

Open Container-Zero opened 4 months ago

Container-Zero commented 4 months ago

QQNT版本:9.97-21484

LLOneBot版本:3.13.7

koishi版本:4.17.2(其它依赖保持最新)

koishi-plugin-adapter-onebot版本:6.5.0

调用管线: Koishi->koishi-plugin-adapter-onebot->LLonebot->LiteLoaderQQNT->QQNT

执行下述代码:

export async function apply(ctx){
  ctx.on('send',async (session)=>{
    logger.info((session.content));
  })
}

console将输出undefined,而非本次bot所发送的内容

Container-Zero commented 4 months ago

已确认是onebot流出现的错误

测试在其它依赖环境完全相同,替换onebot流为Red->Chronocat->QQNT,上述代码可以正常输出bot所发送的内容

shigma commented 4 months ago

Satori 无法保证 send 事件有 content,因为在你的情况下是上游(OneBot 标准)没有提供这个字段。

换用 Satori 协议此问题可以解决,因为 Chronocat 提供了。

Container-Zero commented 4 months ago

Satori 无法保证 send 事件有 content,因为在你的情况下是上游(OneBot 标准)没有提供这个字段。

换用 Satori 协议此问题可以解决,因为 Chronocat 提供了。

也就说以遵循当前 OneBot 的标准来看,是不支持捕获 send 事件的 content 字段的对吗?

shigma commented 4 months ago

对的。如果你需要我可以补一个 polyfill 比如返回空串,或者手动拼一下,不过这不代表真实发送的消息。

Container-Zero commented 4 months ago

对的。如果你需要我可以补一个 polyfill 比如返回空串,或者手动拼一下,不过这不代表真实发送的消息。

好的,麻烦你了~