discord.py make 命令冷却

时间:2021-02-09 11:29:49

标签: discord.py

如何让命令有冷却时间

我有这个代码:

@commands.command
async def reward(self, ctx):
    ctx.user.send("You claimed your reward")
    Money.add(user.id, 50)

我希望该命令只能每 5 分钟使用一次

2 个答案:

答案 0 :(得分:1)

我认为这行得通:

@commands.command
@commands.cooldown(1, 300, commands.BucketType.user)
async def reward(self, ctx):
    ctx.user.send("You claimed your reward")
    Money.add(user.id, 50)

答案 1 :(得分:0)

你可以做@commands.cooldown({rate}, {time},commands.BucketType.{type})

rate 是每个基础的命令使用次数(例如如果你放 2,它将成为每个基础 2 个使用命令)

对于 time,您可以随意放置任何时间,只要以秒为单位,如果不是 5 分钟等一秒,请将分钟转换为秒(5m x 60sec = 500sec)。

最后,commands.BucketType.{type} 是基于每个服务器、每个频道、每个用户或全局的类型。它有 4 种类型:

  • BucketType.default 面向全球。
  • BucketType.user 针对每个用户。
  • BucketType.server 用于每台服务器。
  • BucketType.channel 用于每个频道。

您可以找到更多相关信息Here

对于更新的代码:

@commands.command
@commands.cooldown(1, 300, commands.BucketType.user)
async def reward(self, ctx):
    ctx.user.send("You claimed your reward")
    Money.add(user.id, 50)