Python ban命令的discord.py命令冷却时间

Python ban命令的discord.py命令冷却时间,python,discord.py,Python,Discord.py,我的机器人有这个代码,允许禁止某些人使用。但是,是否有办法使工作人员每2小时只能使用一次ban命令。我希望其他所有命令都没有冷却时间,但对于ban命令,有一种方法允许每个用户每2小时只使用一次。以下是我目前掌握的代码: @commands.has_permissions(administrator=True) async def pogoban (ctx, member:discord.User=None, *, reason =None): if member == None or m

我的机器人有这个代码,允许禁止某些人使用。但是,是否有办法使工作人员每2小时只能使用一次ban命令。我希望其他所有命令都没有冷却时间,但对于ban命令,有一种方法允许每个用户每2小时只使用一次。以下是我目前掌握的代码:

@commands.has_permissions(administrator=True)
async def pogoban (ctx, member:discord.User=None, *, reason =None):
    if member == None or member == ctx.message.author:
        await ctx.channel.send("You cannot ban yourself")
        return
    if reason == None:
        reason = "For breaking the rules."
    message = f"You have been banned from {ctx.guild.name} for {reason}"
    await member.send(message)
    await ctx.guild.ban(member, reason=reason)
    await ctx.channel.send(f"{member} is banned!")

我需要添加/更改什么才能为该命令添加每个用户2小时的命令冷却时间。我试着四处看看,但我只找到了让所有命令都有冷却时间的方法,而不是这个特定的命令。谢谢

像这样的东西怎么样:

冷却时间=[]
@client.command()
异步def pogoban(ctx,成员:discord.member=None,*,reason=None):
author=str(ctx.author)
如果作者处于冷却状态:
等待ctx.send('冷静!你已经在不到两个小时前禁止了某人')
返回
尝试:
如果原因==无:
原因='违反规则'
等待会员。发送(因为**{reason}**,您被禁止进入**{ctx.guild.name}**)
等待成员。禁止(原因=原因)
等待ctx.send(f'{member.notice}已被禁止')
冷却时间。追加(作者)
等待asyncio.sleep(2*60*60)#参数以秒为单位。2小时=7200秒
冷却。移除(作者)
除:
等待ctx.send('抱歉,您不允许这样做')
注意:记住导入
asyncio
。还请记住,一旦您的机器人脱机,列表中存储的所有用户都将被删除


请阅读
更好的方法是将禁止时间和作者姓名一起存储,并检查当前时间是否比保存的时间至少多一个小时。为了更加安全,作者姓名和时间可以保存在数据库或外部文本文件中,这样,如果机器人脱机,您的数据就不会被删除。

当我尝试自己运行该命令时,它只会告诉我“对不起,不允许您这样做”,即使我还不应该处于冷却状态,因为我还没有禁止该用户。@JackThorn只有在您不是管理员的情况下,您才会收到该消息。我是否需要向代码中添加@commands.has_权限(administrator=True),因为您在回答中没有,但我在原始代码中有。@JackThorn如果您愿意,您可以,但我相信对于踢和禁止这是没有必要的,我不完全确定。不管有没有这些,它总是说不允许你这么做。