删除Discord.py中的用户消息

时间:2017-02-11 23:00:27

标签: python discord

有没有办法删除除机器人本身以外的任何人发送的消息,文档似乎表明它是可能的

  

您可以在没有任何适当权限的情况下删除自己的邮件。但是,要删除其他人的消息,您需要具有相应的权限。

但我找不到一种方法来定位消息,以便在on_message事件触发器中执行此操作,我是否遗漏了某些内容,或者这是不可能的?

2 个答案:

答案 0 :(得分:4)

是的,应该是可能的。

您需要机器人/用户帐户才能拥有“管理消息”权限。

@client.event
async def on_message(message):
    await client.delete_message(message)

因此,事件将发生类似

>User sends message
>Bot detects that the user has sent a message
>Bot deletes the message that the user sent

希望你能够看到如何删除用户消息,只需确保将机器人/用户帐户作为“管理消息”权限。

答案 1 :(得分:1)

您可以使用 message.delete() 删除用户消息。

如果用户向服务器发送一些诅咒词,则这是一个代码,以便机器人清除(删除)消息。

@bot.event
async def on_message(message):
    """ some on_message command """
    if message.author.id == bot.user.id:
        return
    msg_content = message.content.lower()

    curseWord = ['curse1', 'curse2']
    
    # delete curse word if match with the list
    if any(word in msg_content for word in curseWord):
        await message.delete()

如果您使用的是 COG:

@commands.Cog.listener()
async def on_message(message):
    # rest same as above