如何制作一个过滤脏话的不和谐机器人

时间:2021-01-26 17:55:52

标签: python bots discord.py discord.py-rewrite

这是我当前的代码:

import discord
import os
from keep_alive import keep_alive 
    
client = discord.Client()
    
@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
    if message.author == client.user:
        return
    
    if message.content.startswith('!something'):
        await message.channel.send('SOMETHING')
    
keep_alive()
client.run(os.getenv("TOKEN"))

我不知道如何制作脏话过滤器。在哪里可以了解有关 discord.py 库的更多信息?

1 个答案:

答案 0 :(得分:1)

首先,我建议使用 commands.Bot() 而不是 discord.Clientcommands.Bot()Client 的子类,因此它具有相同的方法和属性。有了它,您还可以设置命令前缀,而不是一直使用 .startswith 等等。反正...

我们不是来为您编写代码的。在提问之前尝试查找它或尝试其他解决方案。如果您确实向我们展示了您的尝试,这将为我们提供更多信息。无论如何,让我们回到为您编写自己的代码......

试试这个代码:

badWords = ['poopoo', 'peepee', 'check', 'today is my birthday', "i don't like undertale's music", 'you are not cool >:(']

@bot.event
async def on_message(message):
    messageContent = message.content
    if any(word.lower() in messageContent.lower().replace(' ', '') for word in badWords):
        await message.delete()
    #other stuff...

在这段代码中,我们创建了一个 generator 并将它传递给 any(),它检查可迭代对象中是否有任何项目是 True。如果它确实返回 True,则消息将被删除。