如何让@commands.cooldown 持续数天和数月而不是数秒 Discord.py
How to make @commands.cooldown go for days and months instead of seconds Discord.py
我想为 discord.py 经济制定每日奖励命令。我有代码,但问题是它以秒
显示
@client.command(aliases=['d'])
@commands.cooldown(1, 86400, commands.BucketType.user)
@is_registered
async def daily(ctx: commands.Context):
random_amount = random.randint(50, 150)
await economy.add_money(ctx.message.author.id, "wallet", random_amount)
embed = discord.Embed(
colour=discord.Color.from_rgb(244, 182, 89)
)
embed.add_field(name=f"Reward", value=f"Successfully claimed daily!")
await ctx.send(embed=embed)
我查看了 https://discordpy.readthedocs.io/en/stable/ 中关于如何使用冷却时间的文档,但似乎没有办法让它持续数天而不是数秒。这是当您 运行 代码时发生的情况:
你正在冷却。请在 86396.55 秒后重试。
error image 如果你们中有人知道如何将其变为 1 天,将不胜感激。谢谢你。 P.S。如果有帮助,这是我用于经济系统的图书馆:
https://pypi.org/project/DiscordEconomy/
您可以定义错误处理程序。只要出现冷却错误,它就会触发,即 discord.CommandOnCooldown
:
@client.event
async def on_command_error(ctx, err):
if err.__class__ is commands.CommandOnCooldown:
cd: int = int(err.retry_after)
# send an error message, you can customize this
await ctx.send(f'Sorry, you are on cooldown, which ends in **{cd//86400}d {(cd//3600)%24}h {(cd//60)%60}m {cd % 60}s**.')
return
# more error handling...
# You should probably uncomment this
#await ctx.send(err)
这无需对标准冷却处理程序进行任何更改即可工作,因此您可以使用如下命令:
@client.command(name='cooldown')
@commands.cooldown(1, 100000.0, commands.BucketType.user)
async def cooldown_command(ctx):
await ctx.send('Success!')
示例输出消息(您可以自定义显示的内容):
我想为 discord.py 经济制定每日奖励命令。我有代码,但问题是它以秒
显示@client.command(aliases=['d'])
@commands.cooldown(1, 86400, commands.BucketType.user)
@is_registered
async def daily(ctx: commands.Context):
random_amount = random.randint(50, 150)
await economy.add_money(ctx.message.author.id, "wallet", random_amount)
embed = discord.Embed(
colour=discord.Color.from_rgb(244, 182, 89)
)
embed.add_field(name=f"Reward", value=f"Successfully claimed daily!")
await ctx.send(embed=embed)
我查看了 https://discordpy.readthedocs.io/en/stable/ 中关于如何使用冷却时间的文档,但似乎没有办法让它持续数天而不是数秒。这是当您 运行 代码时发生的情况: 你正在冷却。请在 86396.55 秒后重试。 error image 如果你们中有人知道如何将其变为 1 天,将不胜感激。谢谢你。 P.S。如果有帮助,这是我用于经济系统的图书馆: https://pypi.org/project/DiscordEconomy/
您可以定义错误处理程序。只要出现冷却错误,它就会触发,即 discord.CommandOnCooldown
:
@client.event
async def on_command_error(ctx, err):
if err.__class__ is commands.CommandOnCooldown:
cd: int = int(err.retry_after)
# send an error message, you can customize this
await ctx.send(f'Sorry, you are on cooldown, which ends in **{cd//86400}d {(cd//3600)%24}h {(cd//60)%60}m {cd % 60}s**.')
return
# more error handling...
# You should probably uncomment this
#await ctx.send(err)
这无需对标准冷却处理程序进行任何更改即可工作,因此您可以使用如下命令:
@client.command(name='cooldown')
@commands.cooldown(1, 100000.0, commands.BucketType.user)
async def cooldown_command(ctx):
await ctx.send('Success!')
示例输出消息(您可以自定义显示的内容):