我编写了一个脚本,您可以使用我的 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 中发送的所有消息的脚本
答案 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_history
和 manage_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()