删除 discord-rewrite.py 中的用户消息

delete user messages in discord-rewrite.py

这个命令应该做的是删除指定数量的消息,但我却收到错误消息:

Ignoring exception in command clear:
Traceback (most recent call last):
  File "C:\Users\dimit\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\core.py", line 62, in wrapped
    ret = yield from coro(*args, **kwargs)
  File "c:/Users/dimit/Desktop/Discord Bot Shit/BasicBot.py", line 54, in clear
    await channel.purge(messages)
TypeError: purge() takes 1 positional argument but 2 were given

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\dimit\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\bot.py", line 886, in invoke
    yield from ctx.command.invoke(ctx)
  File "C:\Users\dimit\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\core.py", line 498, in invoke
    yield from injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\dimit\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\core.py", line 71, in wrapped
    raise CommandInvokeError(e) from e
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: purge() takes 1 positional argument but 2 were given

我试过的代码:

@bot.command()
async def clear(ctx,amount):
    channel = ctx.message.channel
    messages = []
    async for message in channel.history(limit=int(amount)):
        messages.append(message)
        await channel.purge(messages)

purge 实际上并没有收到要删除的邮件列表(尽管文档的措辞好像确实收到了)。相反,它使用许多关键字参数来确定是否应删除消息。尝试

@bot.command()
async def clear(ctx, amount: int):
    await ctx.channel.purge(limit=amount)