我正在执行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)
答案 0 :(得分:0)
使用Message.delete
和TextChannel.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)
我认为这可能有助于解决问题。