Python上的Discord Bot:如果消息包含

时间:2020-10-10 15:22:19

标签: python discord

您好,我想创建一个不和谐的bot,以删除包含不良单词的消息。我只找到一个函数 startswith ,但是如果它包含不好的单词,我也想删除该消息。

这是我的代码:

@bot.event
async def on_message(message):
    args = message.content.split(" ")[1:]
    if message.content.startswith("bad_word"):
        await message.delete()
        await bot.send_message(message.channel, " ".join(args))

谢谢您的帮助

2 个答案:

答案 0 :(得分:2)

文档states message.content是一个字符串,因此您可能正在寻找:

foo = 'Here is an example string that contains bar.'
if 'bar' in foo:
    print('bar is in foo')

答案 1 :(得分:2)

如果您需要对几个不好的单词进行排序,可以这样做

@bot.event
async def on_message(message):
    args = message.content.split(" ")[1:]
    bad_words = ("bad_word1", "bad_word2", "bad_word3"...)
    if any(bad_word in content for bad_word in bad_words):
        await message.delete()
        await bot.send_message(message.channel, " ".join(args))

我还建议将内容转换为小写,以避免用大写字母绕过系统的可能性。

any(bad_word in content.lower() for bad_word in bad_words)