如何删除我的不和谐机器人发送的 dm 消息

时间:2021-07-07 12:56:09

标签: python

我编写了一个脚本,您可以使用我的 discord bot 向特定的 dm 发送消息

@client.command(pass_context=True)
async def dm(ctx, user: discord.User, *, message=None):
    await ctx.channel.purge(limit=1)
    message = message
    await user.send(message)

但是我如何制作一个可以删除机器人在特定 dm 中发送的所有消息的脚本

2 个答案:

答案 0 :(得分:0)

您可以遍历 DMChannel.history() 并删除作者是您的客户的消息:

@client.command()
async def clear_dm(ctx, user: discord.User):
    async for message in user.dm_channel.history():
        if message.author == client.user:
            await message.delete()

请记住,您分别需要 read_message_historymanage_messages 权限,否则将引发 Forbidden 异常。 此外,如果由于某种原因删除任何消息失败,那么捕获 HTTPException 可能也是一个好主意。

答案 1 :(得分:0)

没关系我修好了。这是脚本

@client.command()
async def cleardm(ctx, user: discord.User):
    #await ctx.channel.purge(limit=1) remove '#' if you want the bot to delete the command you typed in the discord server
    async for message in user.history():
        if message.author == client.user:
            await message.delete()