【问题标题】:How can I reset a command cooldown for a discord user?如何重置不和谐用户的命令冷却时间?
【发布时间】:2021-05-01 03:28:36
【问题描述】:

我想尽可能多地避免错误,但机器人在运行时可能会出现错误。您每 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 参数。

【问题讨论】:

  • trivia_channel 是组命令吗?还是commands.Bot 的一个实例?
  • 是的,忘了补充,这是一个组命令,“开始”是我要重置的东西。

标签: python discord discord.py


【解决方案1】:

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

@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}")

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

参考:

【讨论】:

    猜你喜欢
    • 2021-10-04
    • 2022-11-12
    • 2021-10-08
    • 1970-01-01
    • 2020-10-11
    • 2021-04-25
    • 1970-01-01
    • 2021-06-17
    • 2018-12-09
    相关资源
    最近更新 更多