由于我以前的帖子被锁定,因此我决定对这次想要的内容更加简洁。因此,我有一个用Python(3)编写的不和谐机器人,并且我想用用户基础的冷却来装饰我的所有命令,以防止潜在的滥用。但是,我希望机器人开发人员完全绕过此冷却时间,如果可能的话,我希望如果命令调用程序位于特定的ID列表中,请覆盖其冷却时间(这样他只需等待3秒而不是5秒)例如)。我尝试过:
class Bot(commands.Bot):
class Cooldown:
def __init__(self, rate=1, per=3.0, ctype=commands.BucketType.user):
self.rate = rate
self.per = float(per)
self.ctype = ctype
self.cmd_cldwn = commands.cooldown(rate, per, ctype)
def __call__(self):
def pred(ctx):
if ctx.author.id in bot_developers:
return True
ctx = self.cmd_cldwn(ctx)
return commands.Command.is_on_cooldown(self, ctx)
return commands.check(pred)
但是后来我不知道如何使用它。有人可以帮我吗?
答案 0 :(得分:1)
我实际上是通过创建CooldownMapping
类来找到解决方案的。