当成员离开服务器时,从成员的 DM 中删除机器人的消息

时间:2021-06-30 16:42:27

标签: python discord.py

我想删除我的机器人发送给任何用户的消息,当他们离开服务器时。以下是我尝试过的代码,但似乎没有任何作用......如果有人可以提供帮助,他们可以更正代码吗?

@client.event
async def on_member_remove(member, message):
    #delete messages from dm
    messages_to_remove = 10
    async for message in client.get_user(member).history(limit=messages_to_remove):
      if message.author.id == client.member.id:
        await message.delete()

1 个答案:

答案 0 :(得分:1)

如前所述,您只能删除机器人的消息。

没有直接获取私信的方法,所以我们必须自己构建函数。

看看下面的代码:

@client.event
async def on_member_remove(member):
    dmchannel = await member.create_dm() # "Create" a DM
    async for message in dmchannel.history(limit=10): # Async through the messages
        if message.author == client.user: # Check that the author is the bot
            await message.delete() # Delete 10 messages if possible