@client.command(pass_context = True)
async def getalt(ctx):
msg = ["gabrielwarren2000@gmail.com:Cyber123", "leandroriveros123@gmail.com:culillo123", "albesi8@msn.com:Albakortoci1", "dryden6@yahoo.ca:toysale22", "nichlas00100@gmail.com:nich918273645", "lodevanveen@gmail.com:Lodelode1", "kylefielding2011@gmail.com:emolover123", "rubbst3in@gmail.com:rube541632789mk", "jasonfryckman@ymail.com:fryckman22", "NickSaya1@hotmail.com:blackout541", "devinquan@yahoo.com:ploopy101"]
await client.send_message(ctx.message.author, random.choice(msg))
await client.send_message(ctx.message.channel, "Alt Has Been Seen To Your DMs")
await client.purge_from(ctx.message.channel, limit=2)
await client.send_message(ctx.message.author, "Please Wait 30 Seconds Before Using This Command Again.")
我想为此命令设置30秒的冷却时间。
答案 0 :(得分:2)
你应该用
装饰你的命令@commands.cooldown(1, 30, commands.BucketType.user)
这将为每个用户添加每30秒1次使用的速率限制。 docs,example
您可以将BucketType更改为default
,channel
或server
以创建全局,频道或服务器速率限制,但您只能对命令进行1次冷却。
这也会在CommandOnCooldown
on_command_error
例外
答案 1 :(得分:1)
我知道一种在通道中发送冷却正在进行的方法。
@command_name.error
async def command_name_error(ctx, error):
if isinstance(error, commands.CommandOnCooldown):
em = discord.Embed(title=f"Slow it down bro!",description=f"Try again in {error.retry_after:.2f}s.", color=color_code_here)
await ctx.send(embed=em)
确保您已导入存储桶类型。如果没有 -
from discord.ext.commands import cooldown, BucketType
注意 - 确保命令冷却事件始终具有不同的名称,并且必须是 the_command_name_here.error
(不要将其设为 the_command_name_here,在此处插入 ACTUAL 命令名称。)