Skip to content

koishi-plugin-rate-limit

TIP

要使用本插件,你需要安装数据库支持,并配合 @koishijs/plugin-commands 使用。

koishi-plugin-rate-limit 可用于限制指令调用频率。

基本用法

安装此插件后,控制台的「指令管理」页面将会增加一些配置项。

有些指令 (例如签到抽卡,限制次数的 API 调用等) 我们并不希望被无限调用,这时我们可以通过 maxUsage 设置每天访问额度的上限。当超出总次数后,机器人将回复「调用次数已达上限」。

另一些指令 (例如高强度刷屏,需要等待一定时间才有结果的功能) 我们并不希望被短时间内重复调用,这时我们可以通过 minInterval 设置最短触发间隔。如果一个处于冷却中的指令再次被调用,机器人将会提示「调用过于频繁,请稍后再试」。

如果你希望某些选项不计入总次数,可以使用选项配置中的 notUsage。启用此项后,当指令调用含有对应的选项时,将不会收到 maxUsageminInterval 的限制。

最后,如果我们希望让多个指令共同同一套速率限制,可以通过 usageName 来进行管理。只需将这些指令的 usageName 设置为相同的值即可。

扩展用户字段

  • usage: Record<string, number> 指令调用次数
  • timers: Record<string, number> 指令调用时间

指令:user.usage / user.timer

  • 基本语法:user.xxx [key] [value]
  • 选项:
    • -s, --set 设置访问记录(需要 4 级权限)
    • -c, --clear 清除访问记录(需要 4 级权限)
    • -t, --target [@user] 目标用户(需要 3 级权限)

如果不提供 -s-c 选项,则会显示当前的访问记录。如果使用了 -s,就会设置名为 key 的访问记录为 value。如果使用了 -c 且提供了 key,就会清除名为 key 的访问记录;否则会清除所有的访问记录。