我想制作包含一个关键字的机器人删除消息

时间:2018-01-25 20:58:16

标签: python discord discord.py

我想让我的机器人删除包含单词“nom”的消息 如果它不是以这个词开头的话,我该如何删除机器人? 实际上这只有当消息以这个单词开头时才有效,而且我不知道如果每次这个单词出现在消息中时如何使它工作。如果有人试图写“.nom”,“NoM”之类的东西,我也想让我的机器人删除它。有人可以帮助我吗?

@client.event

async def on_message(message):

     if message.content == "nom":

          await client.delete_message(message)

2 个答案:

答案 0 :(得分:0)

您目前正在检查内容是否等于“nom”。要检查它是否确实包含该单词,请尝试以下操作:

if "nom" in message.content.lower(): await client.delete_message(message)

这也会识别像“NoM”这样的变量,因为它将消息转换为小写。

答案 1 :(得分:0)

这是我推荐的做法

import shlex

split = shlex.split(message.content.lower())
if 'nom' in split:
    # rewrite
    await message.delete()

    # async
    await client.delete_message(message)

虽然如果你正在处理亵渎的动态列表,我建议你做一些像

这样的事情
split = shlex.split(message.content.lower())
if any(substring for bad in bad_words for substring in split if bad in substring):
    # rewrite
    await message.delete()

    # async
    await client.delete_message(message)

if语句中的genexr取自here