因此,目前我正在尝试进行冷却,以显示剩余时间(以小时和分钟为单位)。我想出了分钟和秒,但是我却迷上了几个小时。这是我的代码
@commands.command(aliases=["claim"])
@commands.cooldown(1, 86400, commands.BucketType.user)
(some code here)
@daily.error
async def daily_error(self, ctx, error):
if isinstance(error, commands.CommandOnCooldown):
embed = discord.Embed(
title="You're on a cooldown!", color=discord.Color.blue())
cd = round(error.retry_after)
hours = str(cd // 3600)
minutes = str(cd % 60)
embed.add_field(
name="\u200b",
value=
f"Slow down will ya?\n Wait for `{self.leadingZero(hours)}hours{self.leadingZero(minutes)}minutes`"
)
await ctx.send(embed=embed)
答案 0 :(得分:0)
因此@daily.error
可以正常工作。但是我更喜欢使用on_command_error
,因为它会为您显示每个命令的错误。这样做会更简单
@client.event
async def on_command_error(ctx, error):
if isinstance(error, commands.CommandOnCooldown):
wait ctx.send("You're on cooldown.")
return
else:
raise error
注意:raise error
将允许在终端中打印所有其他错误。
但是对于这段代码,它只会在几秒钟内显示出来,这不是您想要的。
@client.event
async def on_command_error(self, ctx, error):
if isinstance(error, commands.CommandOnCooldown):
embed = discord.Embed(
title="You're on a cooldown!", color=discord.Color.blue())
cd = round(error.retry_after)
hours = str(cd // 3600)
minutes = str(cd % 60)
embed.add_field(
name="\u200b",
value=
f"Slow down will ya?\n Wait for `{hours} hours {minutes} minutes`"
)
await ctx.send(embed=embed)
else:
raise error
尝试一下,idk如果可行,因为您使用齿轮,我不会。