我需要帮助,让机器人回复我,并提供已清除邮件的确切数量。
示例:当我输入 !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')
我知道这不会显示它清除了多少条消息,而是显示了它试图清除了多少条消息(当然,如果它确实有效,那会发生什么,但它没有按预期工作)
我对此进行了大量搜索,但在任何地方都找不到任何类似的帖子,因此希望有人能帮助我。
答案 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):