Повторение функции on_message, перезапись Discord.py - PullRequest
1 голос
/ 02 апреля 2019

Я создаю бота, который, когда обнаружит, что вы используете запрещенное слово, удалит ваше сообщение. Достаточно просто, но когда я это делаю. Функция on_message повторяется. Я не знаю почему, но я надеюсь, что вы можете ответить на мой вопрос

@client.event
async def on_message(msg):
    contents = msg.content.split(" ")
    for word in contents:
        if word.lower() in chat_filter: #ChatFilter is a list of words that cannot be used
            try:
                await msg.delete()
                await msg.channel.send("**YOU ARE NOT ALLOWED TO USE THIS WORD!!!**")
            except discord.errors.NotFound:
                return

1 Ответ

1 голос
/ 03 апреля 2019

Вы перебираете каждое слово сообщения и отправляете ответ для каждого из тех слов, которые также есть в chat_filter. Вместо этого отправьте одно сообщение, если в списке запрещенных слов есть какое-либо слово:

@client.event
async def on_message(msg):
    contents = msg.content.split(" ")
    if any(word in chat_filter for word in contents):
        try:
            await msg.delete()
            await msg.channel.send("**YOU ARE NOT ALLOWED TO USE THIS WORD!!!**")
        except discord.errors.NotFound:
            return
...