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
变量指定的。
答案 0 :(得分:0)
我认为您应该将其与ctx.channel.purge
结合使用,这样可以消除执行通道中特定数量的消息。
async def clear(ctx, amount: int):
await ctx.channel.purge(limit= amount+1)