命令冷却时间和分钟

时间:2018-06-12 02:30:40

标签: python python-3.x discord discord.py

我添加了一个命令冷却时间,但是如何使用数小时和分钟。

@bot.command(pass_context=True)
@commands.cooldown(1, 30, commands.BucketType.user)
async def ping(ctx):
    msg = "Pong {0.author.mention}".format(ctx.message)
    await bot.say(msg)

1 个答案:

答案 0 :(得分:1)

commands.cooldown的第二个参数per需要一个秒的间隔,您可以通过乘以等效秒数(1分钟= 60秒,1秒)轻松将所需的小时和分钟转换为秒小时= 3600秒)。您还可以创建一个包装函数来为您进行转换:

def cooldown(rate, per_sec=0, per_min=0, per_hour=0, type=commands.BucketType.default):
    return commands.cooldown(rate, per_sec + 60 * per_min + 3600 * per_hour, type)

@bot.command(pass_context=True)
@cooldown(1, per_min=5, per_hour=1, type=commands.BucketType.user)
async def ping(ctx):
    msg = "Pong {0.author.mention}".format(ctx.message)
    await bot.say(msg)

这将启动1小时5分钟的冷却时间。