我想让我的机器人删除包含单词“nom”的消息 如果它不是以这个词开头的话,我该如何删除机器人? 实际上这只有当消息以这个单词开头时才有效,而且我不知道如果每次这个单词出现在消息中时如何使它工作。如果有人试图写“.nom”,“NoM”之类的东西,我也想让我的机器人删除它。有人可以帮助我吗?
@client.event
async def on_message(message):
if message.content == "nom":
await client.delete_message(message)
答案 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。