Skip to content

Comments

fix: 修复多 NapCat 实例连接时 ctx.bot 指向错误的问题#8

Closed
Jerryplusy wants to merge 1 commit intodevfrom
fix-修复连接多个NapCat示例时发送信息问题

Hidden character warning

The head ref may contain hidden characters: "fix-\u4fee\u590d\u8fde\u63a5\u591a\u4e2aNapCat\u793a\u4f8b\u65f6\u53d1\u9001\u4fe1\u606f\u95ee\u9898"
Closed

fix: 修复多 NapCat 实例连接时 ctx.bot 指向错误的问题#8
Jerryplusy wants to merge 1 commit intodevfrom
fix-修复连接多个NapCat示例时发送信息问题

Conversation

@Jerryplusy
Copy link
Collaborator

问题

当连接多个 NapCat 实例时,插件中通过 ctx.bot 调用发送消息等接口时,会错误地使用第一个连接的 bot 实例,而不是收到消息的那个 bot

复现

  1. 配置 package.json 中的 napcat 数组,连接两个 NapCat 实例
  2. 让 bot1 加入某个群,bot2 不加入该群
  3. 在群里发送消息触发插件处理
  4. 插件调用 ctx.bot.sendGroupMsg() 或其他接口操作

报错:

[17:07:24] ERROR [mioki] unhandledRejection, 出错了: Error: API 错误: EventChecker Failed: NTEvent serviceAndMethod:NodeIKernelMsgService/sendMsg ListenerName:NodeIKernelMsgListener/onMsgInfoListUpdate EventRet:
{
    "result": 110,
    "errMsg": "发送失败,你已被移出该群,请重新加群。"
}

修复

  • 引入 currentBotHolder 记录当前处理事件的 bot
  • ctx.botctx.self_id 改为 getter,动态返回正确的 bot

@vercel
Copy link

vercel bot commented Feb 23, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mioki Ready Ready Preview, Comment Feb 23, 2026 9:15am

@Jerryplusy Jerryplusy requested a review from vikiboss February 23, 2026 09:15
@vikiboss
Copy link
Owner

vikiboss commented Feb 25, 2026

ctx.bot 就是给单实例模式下的主要 bot (第一个 bot)使用的,多实例模式建议用我刚才新增的 ctx.pickBot(id) 方法获取,id 一般可以从 event.self_id 获取。

如果是需要传入 bot 的操作方法,比如 ctx.getCookie('vip.qq.com'),在多实例模式下则使用新增的 actions 处理,比如 ctx.actions.getCookie(ctx.pickBot(xxx), 'vip.qq.com')。手动传入 bot 以确保整个过程可预测、稳定,不然很容易写出奇怪 bug。

@vikiboss vikiboss closed this Feb 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants