Как сделать ожидание сообщения от пользователя, а затем уже сделать что-то?
У меня есть основа команды:
@client.command()
async def captcha(ctx):
captcha = random.randint(11111, 99999)
await ctx.send(f"\n```ПРОВЕРКА НА ВАШУ СКОРОСТЬ \nкод ниже \nкод ниже \n{captcha} \nкод выше \nкод выше \nПРОВЕРКА НА ВАШУ СКОРОСТЬ```")
Мне нужно сделать так, чтобы когда бот отправил код, бот бы ждал ответ пользователя с тем-же содержанием. Вот пример:
ПРОВЕРКА НА СКОРОСТЬ | ВАША КАПЧА: 49815 | ПРОВЕРКА НА СКОРОСТЬ
49815
Хорошая работа, [ping]!
Надеюсь, вы поняли. удачного дня!
Ответы (1 шт):
Автор решения: RAINGM
→ Ссылка
@client.command()
async def captcha(ctx):
import asyncio
captcha = random.randint(11111, 99999)
msg = await ctx.send(f"\n```ПРОВЕРКА НА ВАШУ СКОРОСТЬ \nкод ниже \nкод ниже \n{captcha} \nкод выше \nкод выше \nПРОВЕРКА НА ВАШУ СКОРОСТЬ```")
def check(m):
return m.channel == ctx.channel and m.author == ctx.author
try:
message = await client.wait_for('message', check=check, timeout=60)
except asyncio.TimeoutError:
return await ctx.send(embed=discord.Embed(description=f"{ctx.author.mention} Время вышло!"))
if message.content == str(captcha):
await message.delete()
return await msg.edit(content=f'{ctx.author.mention} Вы прошли проверку')
else:
await message.delete()
return await msg.edit(content=f'{ctx.author.mention} Вы не прошли проверку')