此文档已弃用。请访问我们的最新文档:https://koishi.chat

机器人管理 (Bots)

WARNING

本节中介绍的 API 均为实验性功能,可能在后续版本中发生变化。

ctx.bots 保存了当前全部 Bot 实例。它继承了 Array 类,因此你可以使用诸如 ctx.bots.forEach() 的写法。除此以外,我们还提供了一些与机器人相关的实用方法。

实例方法

ctx.getSelfIds(type?, assignees?)

  • type: Platform 平台名称,如果不写就对应全部平台
  • assignees: string[] 机器人 ID 列表,如果不写就对应当前平台的全部机器人
  • 返回值: Record<string, readonly string[]> 平台名到机器人 ID 列表的键值对

按平台名称对机器人分类。

ctx.broadcast(channels?, content, forced?)

  • channels: string[] 频道列表
  • content: string 要发送的内容
  • forced: boolean 是否无视 silent 标记
  • 返回值: Promise<string[]> 成功发送的消息 ID 列表

所有机器人向自己分配的频道广播消息,存在标记 silent 的频道除外。如有失败不会抛出错误。参见 发送广播消息

ctx.bots.get(sid)

  • sid: string 机器人的 sid
  • 返回值: Bot 机器人实例

使用 sid 获取机器人实例。

ctx.bots.remove(id)

  • sid: string 机器人的 id
  • 返回值: boolean 机器人实例是否存在

移除一个机器人实例。

ctx.bots.create(platform, options, constructor?)

  • platform: string 适配器名
  • options: object 配置项
  • constructor: Function 构造函数

新增一个机器人实例。