Бот продолжает реагировать на ответ, даже после того, как он уже был дан. Discord.py

При ответе бот должен писать, правилен ли он, но после того как ответ уже был дан, и бот написал, был ли он правильным или нет, бот продолжает реагировать на любые сообщения, и говорить, что это не правильный ответ(или правильный). В общем: нужно чтобы после ответа бот переставал продолжать реагировать на сообщения, до написания команды.


Код:


@bot.command()
async def country(ctx):
    global round
    round = 0
    flags = ['??', '??', '??', '??', '??', '??', '??', '??', '??', '??', '??', '??', '??', '??', '??', '??', '??', '??', '??']
    flag = random.choice(flags)
    await ctx.send('Какой страны этот флаг?')
    await ctx.send(flag)
    if flag == '??':
        answ = 'австралия'
    elif flag == '??':
        answ = 'аргентина'
    elif flag == '??':
        answ = 'афганистан'
    elif flag == '??':
        answ = 'болгария'
    elif flag == '??':
        answ = 'зимбабве'
    elif flag == '??':
        answ = 'израиль'
    elif flag == '??':
        answ = 'индия'
    elif flag == '??':
        answ = 'иран'
    elif flag == '??':
        answ = 'ирландия'
    elif flag == '??':
        answ = 'италия'
    elif flag == '??':
        answ = 'китай'
    elif flag == '??':
        answ = 'испания'
    elif flag == '??':
        answ = 'египет'
    elif flag == '??':
        answ = 'греция'
    elif flag == '??':
        answ = 'дания'
    elif flag == '??':
        answ = 'оаэ' or 'арабские эмираты' or 'объединённые арабские эмираты' or 'объединенные арабские эмираты'
    elif flag == '??':
        answ = 'украина'
    elif flag == '??':
        answ = 'сша' or 'америка'
    elif flag == '??':
        answ = 'россия' or 'рф'
    author = ctx.message.author
    round = 1
    if round == 1:
        @bot.event
        async def on_message(message):
            if message.author == author:
                if f'{answ}' in message.content:
                    await ctx.send('Вы угадали!')
                else:
                    await ctx.send(f'Вы проиграли... \nЭто была {answ}')
    round = 0

Ответы (1 шт):

Автор решения: towerty

Чтобы функция завершилась вам придётся использовать "return":

if round == 1:
        @bot.event
        async def on_message(message):
            if message.author == author:
                if f'{answ}' in message.content:
                    return await ctx.send('Вы угадали!')
                else:
                    return await ctx.send(f'Вы проиграли... \nЭто была {answ}')
→ Ссылка