本帖内容存在严重的副作用,内容已经折叠
**注意**:以下方法虽然可以解决回复机器人消息时leveldb报错的问题,但不确定是否能够解决其它比如编码问题造成的leveldb报错。在使用后续方法规避报错,并且开发插件时,请先判断发送者的QQ是否是机器人QQ(具体原因看1楼),实例:
import { Context, Schema } from 'koishi'
export const name = 'plugin2023'
export interface Config {}
export const Config: Schema = Schema.object({})
export function apply(ctx: Context) {
ctx.on("message", async (session) => { //收到新消息
if(session.userId == session.selfId) return; //检测发送者是不是bot自身
//不是botQQ继续
session.send("你好~")
})
}
开启它
问题描述:
在群里回复机器人消息的时候,出现了下图中的报错:
通过调试插件,输出session数据,发现数据正常,但是 quote: undefined 了
调试输出原始数据也是正常的:
这就说明不是消息解析上的问题。
继续测试,同群内回复其他QQ(不是bot的正常QQ),一切正常,没有任何报错,并且quote字段是有效的:
所以真正的问题在于,获取botQQ自身消息的这个过程发生了错误,正常罗辑下,除了botQQ以外的QQ消息数据都是正常的,那会不会是 因为gocq没有上报botQQ自己的消息 导致的问题呢?!
打开 koishi > 进入插件列表 > [gocqhttp] > [消息设置]
开启它
重载配置
重启koishi。
问题解决!