如何使用指定的消息量创建消息清除命令

时间:2020-07-18 08:46:03

标签: python-3.x discord.py

async def delete(ctx, number):
    numbers = int(number)
    await ctx.send("Deleting messages......")
    await discord.Message.delete(numbers)
   

我是Discord.py的新手,并且正在制作可以执行基本审核命令的机器人。我试图做出一个明确的命令来删除指定数量的消息,例如:del 10将删除10条消息(不包括该命令,因此总共11条)。但是我一直收到discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'int' object has no attribute '_state'错误。我不知道如何解决这个问题,并尝试了谷歌,有人可以帮忙吗?起初,我在await ctx.send("Deleting messages.....")之后有一个while循环,就像这样:

async def delete(ctx, number):
    numbers = int(number)
    max_number == 0 
    await ctx.send("Deleting messages......")
    while max_number <= numbers:
           await discord.Message.delete(numbers)

但是这也会引发相同的错误,我不确定是否需要使用while循环,因为要删除的消息量是由numbers变量指定的。

1 个答案:

答案 0 :(得分:0)

我认为您应该将其与ctx.channel.purge结合使用,这样可以消除执行通道中特定数量的消息。

async def clear(ctx, amount: int):
    await ctx.channel.purge(limit= amount+1)