【问题标题】:How to make the bot respond when typing in a cooldown (discord.py)?输入冷却时间(discord.py)时如何让机器人做出响应?
【发布时间】:2021-01-20 23:58:27
【问题描述】:

这是我当前的代码;它可以工作,但机器人不发送消息:

@bot.on_error
async def beg_error(ctx, error):
    if isinstance(error, commands.CommandOnCooldown):
        await ctx.send('This command is ratelimited, please try again in {:.2f}s'.format(error.retry_after))
    else:
        raise error

@bot.command(pass_context=True)
@commands.cooldown(1, 5, commands.BucketType.user)
async def beg(ctx):
    await ctx.send("test 123")

任何帮助将不胜感激!

【问题讨论】:

    标签: python python-3.x discord discord.py


    【解决方案1】:

    特定命令错误处理程序的装饰器是@command_name.error 而不是@bot.on_error

    以下是修改后的代码:

    @bot.command(pass_context=True)
    @commands.cooldown(1, 5, commands.BucketType.user)
    async def beg(ctx):
        await ctx.send("test 123")
    
    @beg.error
    async def beg_error(ctx, error):
        if isinstance(error, commands.CommandOnCooldown):
            await ctx.send('This command is ratelimited, please try again in {:.2f}s'.format(error.retry_after))
        else:
            raise error
    

    【讨论】:

      猜你喜欢
      • 2021-05-15
      • 2021-03-25
      • 2017-07-08
      • 2021-05-02
      • 2021-04-21
      • 2019-12-29
      • 2022-12-10
      • 2022-01-16
      相关资源
      最近更新 更多