如何让命令有冷却时间
我有这个代码:
@commands.command
async def reward(self, ctx):
ctx.user.send("You claimed your reward")
Money.add(user.id, 50)
我希望该命令只能每 5 分钟使用一次
答案 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)