由于我之前的帖子被锁定了,我决定这次更简洁地说明我想要什么。因此,我有一个用Python (3)编写的不和谐机器人,我想用用户基础冷却来装饰我的所有命令,以防止潜在的滥用。但是,我希望机器人开发人员完全绕过这个冷却时间,如果可能的话,我希望如果命令调用者在特定的ids列表中,覆盖他的冷却时间(这样他只需要等待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)但是我不知道如何使用它。谁能帮帮我?
发布于 2019-08-12 18:47:22
我实际上通过创建一个CooldownMapping类找到了解决方案。
https://stackoverflow.com/questions/57453263
复制相似问题