Мой бот discord.py с событием chat-filter отправляет 2 или более сообщений вместо 1 - PullRequest
0 голосов
/ 02 мая 2020

Не так давно go добавлено в мой чат-фильтр диска разногласий, который удаляет сообщения, которые я не хочу видеть. Но у меня есть проблема с этим. Перед этим новым событием мой бот отправляет команду $ hello 1 сообщение (привет, {я}), но с помощью этого фильтра чата он отправляет 2 или более вопросов (Количество сообщений = количество запрещенных слов). Можете ли вы помочь мне с этим.

enter image description here

@Bot.event
async def on_message( message ):
    filter = ['!leave', '!play','!skip']
    for word in filter:

        if word in message.content:
            print('%s bad word' % (message.author.id))
            await message.channel.purge(limit=1)
            await message.author.send('Просьба писать команды для бота в #music')
        await Bot.process_commands(message)

Это код фильтра чата, в котором проблема. Я думаю, что из-за этого фильтра весь мой код компилируется три раза

1 Ответ

0 голосов
/ 02 мая 2020

Предположение, что это дубликат этого вопроса

Поскольку у вас есть 2 on_message() функций, будет обработана только вторая. Вы должны удалить один.

У вас проблема с несколькими сообщениями, потому что вы обрабатываете команду await bot.process_commands(message) в вашем for l oop. Исходя из 3 плохих слов, у вас есть 3 сообщения.

Попробуйте деиндентировать ваш await bot.process_commands(message), чтобы он совпадал с вашим for word in filter.

...