有没有办法为 discord.py 中的命令设置默认冷却时间

时间:2021-02-01 16:09:16

标签: discord.py

所以我需要我的所有命令都有两秒的冷却时间,有没有办法为所有命令设置默认冷却时间(而不是使用装饰器单独添加它)?如果是这样,您是否还可以更改其他特定命令以另外分开冷却时间?感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

discord.py 有一个 decorator 用于冷却。

from discord.ext.commands.cooldowns import BucketType

@commands.cooldown(rate,per,BucketType)

*冷却时间允许命令在特定时间范围内仅使用特定次数。这些冷却时间可以基于每个公会、每个频道、每个用户、每个角色或全局。由 type 的第三个参数表示,该参数必须是枚举类型 BucketType。

如果触发冷却,则在 on_command_error() 和本地错误处理程序中触发 CommandOnCooldown。

一个命令只能有一个冷却时间。*

答案 1 :(得分:0)

好的,在查看了 discord 模块后,我找到了一个非常简单的解决方案,可以为每个命令提供冷却时间,可以很容易地对其进行修改,以便为不同的命令提供不同的冷却时间,并且只需自动化冷却时间而不是使用装饰器

default_cooldown = commands.Cooldown(1, 2, commands.BucketType.user)
for command in self.bot.commands:
    command._buckets._cooldown = default_cooldown