Skip to content

旧版插件权限

WARNING

Kokkoro v3 尚未实现插件权限,本页记录旧版功能,帮助理解多机器人项目如何分别控制插件。下列配置均不适用于 Kokkoro v3。

一个项目可以运行多个机器人,每个机器人需要的插件却未必相同。Kokkoro v1 和 v2 都提供过限制插件使用范围的能力,但两代版本采用的配置模型不同。

Kokkoro v1

Kokkoro v1 会为每个机器人生成独立的 profile-<QQ号>.json。插件可以针对当前机器人完全禁用,也可以只在某个群聊中关闭。

下面的 profile 表示 kfc 在当前机器人中完全禁用,hitokoto 则只在群聊 123456789 中关闭:

json
{
  "group": {
    "123456789": {
      "name": "测试群",
      "setting": {
        "hitokoto": {
          "apply": false,
          "lock": false
        }
      }
    }
  },
  "disable": ["kfc"]
}

顶层的 disable 记录当前机器人禁用的插件。group.<群号>.setting.<插件>.apply 则记录插件是否在指定群聊中启用。

v1 内置的 enabledisable 指令用于修改机器人的全局禁用列表,applyexempt 则用于切换当前群聊的插件开关。这些配置保存在 profile 中,而不是 kokkoro.json 的机器人对象中。

Kokkoro v2

Kokkoro v2 改为在机器人配置中使用 plugins 数组。下面的配置让第一个机器人使用 hitokotokfc,第二个机器人只使用 hitokoto

json
{
  "bots": [
    {
      "appid": "FIRST_APP_ID",
      "token": "FIRST_TOKEN",
      "secret": "FIRST_SECRET",
      "plugins": ["hitokoto", "kfc"]
    },
    {
      "appid": "SECOND_APP_ID",
      "token": "SECOND_TOKEN",
      "secret": "SECOND_SECRET",
      "plugins": ["hitokoto"]
    }
  ]
}

数组中的值对应旧版插件的 metadata.name。省略 plugins 或传入空数组时,机器人会挂载全部插件。

按照上面的配置,可可萝能够响应一言和疯狂星期四指令,爱梅斯只会响应一言:

聊天记录
Yuki
@可可萝 /一言
可可萝机器人
『只有分离后才能懂的事,却没有了感慨的时间。』——「宝石之国」
Yuki
@爱梅斯 /一言
爱梅斯机器人
『只要努力活下去,总有一天会笑着回忆。』——「不可思议游戏」
Yuki
@可可萝 /疯狂星期四
可可萝机器人
Steam 上多买了一个艾尔登法环的 key,送给有缘人了:KFCC-RAZY-THUR-SDAY-VME50
Yuki
@爱梅斯 /疯狂星期四

Kokkoro v3

Kokkoro v3 会在启动时尝试将全部插件挂载到每个机器人。新的权限模型仍在设计,未来的配置形式不一定沿用 v1 或 v2。