Discord python bot 创建:清除消息命令,显示删除了多少消息

时间:2021-01-11 14:19:26

标签: discord.py

我需要帮助,让机器人回复我,并提供已清除邮件的确切数量。

示例:当我输入 !clear 15 并删除 12 条消息时,我希望它回复我“已清除 12 条消息”

我尝试过这样的事情:

  @commands.command()
  async def clear(self, ctx, amount=10):
    await ctx.channel.purge(limit=amount)
    await ctx.send(amount, 'messages cleared')
  

我知道这不会显示它清除了多少条消息,而是显示了它试图清除了多少条消息(当然,如果它确实有效,那会发生什么,但它没有按预期工作)

我对此进行了大量搜索,但在任何地方都找不到任何类似的帖子,因此希望有人能帮助我。

1 个答案:

答案 0 :(得分:0)

TextChannel.purge 返回已删除邮件列表,您可以简单地使用 len()

deleted_messages = await ctx.channel.purge(limit=amount)
await ctx.send(f"{len(deleted_messages) - 1} messages cleared") # Subtracting 1 as it's the message of the command

此外,您应该键入提示 amount 参数,以便它自动转换为整数

async def purge(self, ctx, amount: int = 10):