Бот продолжает реагировать на ответ, даже после того, как он уже был дан. 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}')