如何立即删除特定用户的消息?

时间:2019-04-22 21:58:55

标签: python discord.py-rewrite

我正在尝试在Discord Bot中编写一条命令,该命令在被触发时将主动删除特定用户的新消息。

我尝试了使用ctx的几种方法,但老实说,我并不完全理解如何使用它来完成此操作。

此代码块删除触发它的消息。因此,我认为我采用了错误的方法,因为它只会从触发它的人中删除并且仅在他们键入命令时才删除。显然,我是新手。我将不胜感激。非常感谢:)

@client.event
async def on_message(ctx):
    message_author = ctx.author.id
    if message_author == XXXXXXXXXXXXXXXXX:
        await ctx.message.delete()

2 个答案:

答案 0 :(得分:0)

不和谐重写(DiscordPy 1.0+)中不再有CTX,而是应该这样做:

@client.event
async def on_message(message):
    if message.author.id == XXXXXXXXXXXXXXXXX:
        await message.delete()

来源:link

答案 1 :(得分:0)

您可以发出命令将用户添加到列表中,然后使用on_message检查用户是否在该列表中,如果是,则将其删除

dels=[]

@bot.event
async def on_message(msg):
    if msg.author.id in dels:
        await bot.delete_message(msg)

    await bot.process_commands(msg)


@bot.command(name='del_msg')
async def delete_message(con,*users:discord.Member):
    for i in users:
        dels.append(i.id)

    await con.send("Users {} have been added to delete messages list".format(" ,".join(users)))