如何为不和谐用户重置命令冷却时间?

时间:2021-01-27 09:57:35

标签: python discord discord.py

我想避免尽可能多的错误,但机器人在运行时可能会出错。您只能每 7 天运行一次命令。如果涉及到错误,那当然是愚蠢的。有没有办法让命令再次可用/重置某些用户的冷却时间?

我的方法:

    @trivia_channel.command(aliases=["reset"])
    async def reset_cooldown(self, ctx, member: discord.Member):
        await self.start.reset_cooldown(ctx, member)
        await ctx.send(f"Resetted cooldown for {member}.")

trivia_channel.command 是一个组命令。

这显然会引发错误,我不知道如何适应 member 参数。

1 个答案:

答案 0 :(得分:0)

Command.reset_cooldown 只接受一个参数,即 Context。如果您使用 Context.author 变量覆盖 Context.message.authormember 属性,您可以为其他人重置冷却时间。

@trivia_channel.command(aliases=["reset"])
async def reset_cooldown(self, ctx, member: discord.Member):
    ctx.author = member
    ctx.message.author = member
    
    self.start.reset_cooldown(ctx)
    await ctx.send(f"Resetted cooldown for {member.mention}")

这对我有用,但这不是最好的解决方案。如果您想要更好的方法,您可以创建自定义冷却时间,但仅使用一个命令是不值得的。

参考: