В discord.py , Как мне сделать фильтр ненормативной лексики

#python #discord.py

#python #discord.py

Вопрос:

Это то, что у меня есть на данный момент, и когда я тестирую его, вводя плохое слово в список, ничего не происходит. Почему это так и какой код я могу использовать, чтобы это исправить?

 infractions = {}
limit = 5
blacklist = ['bad words go here']
@bot.event
async def on_message(message):
    content = message.content.lower()
    if any(word in content for word in blacklist):
        id = message.author.id
        infractions[id] = infractions.get(id, 0)   1
        if infractions[id] >= limit:
            await bot.kick(message.author)
        else:
            warning = f"{message.author.mention} this is your {infractions[id]} warning"
            await bot.send_message(message.channel, warning)
    await bot.process_commands(message)
 

Комментарии:

1. вы используете старую версию discord.py

Ответ №1:

ваша проблема в том, что вы используете старую версию / учебник discord.py . Такие вещи, как bot.send_message устаревшие, и такие вещи, как bot.kick даже не существуют. Идеальным кодом было бы ™:

 infractions = {}
limit = 5
blacklist = ['old', 'version', 'of', 'discord', '.', 'py']

@bot.event
async def on_message(message):
    content = message.content.replace(' ', '')

    if any(word in content.lower() for word in blacklist):
        id = message.author.id
        infractions[id] = infractions.get(id, 0)   1

        if infractions[id] >= limit:
            await message.author.kick()
        else:
            warning = f"{message.author.mention} this is your {infractions[id]} warning"
            await message.channel.send(warning)
    await bot.process_commands(message)