我收到delete_message的属性错误,该如何解决?

时间:2019-12-24 14:05:11

标签: python bots discord discord.py

我正在执行bot命令,该命令会删除某个频道中的最后200条消息。您必须具有一定的角色才能成功执行命令。

我收到AttributeError提示,“ Bot”没有属性“ delete_message”。我该如何解决?

@client.command(pass_context = True)
@commands.has_role("watch announcement purger")
async def clear(ctx):
     channel = client.get_channel(535156631760273428)
     clearLimit = 200
     await client.delete_message(ctx.message)
     async for x in channel.history(limit = clearLimit):
          await client.delete_message(x)

3 个答案:

答案 0 :(得分:0)

使用Message.deleteTextChannel.purge

@client.command()
@commands.has_role("watch announcement purger")
async def clear(ctx):
     channel = client.get_channel(535156631760273428)
     await ctx.message.delete()
     await channel.purge(limit=200)

答案 1 :(得分:0)

您正在使用discord.py版本v0.16中的语法,该语法不再受支持。
参见the guide for migrating to v1

答案 2 :(得分:0)

我只是使用以下代码:

@commands.has_permissions(manage_messages=True)
async def clear(ctx,limit:int):
    await ctx.channel.purge(limit=limit+1)
    await ctx.send(f"Cleared {limit} messages", delete_after=5) 

我认为这可能有助于解决问题。