Как сделать ожидание сообщения от пользователя, а затем уже сделать что-то?

У меня есть основа команды:

@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} Вы не прошли проверку')
→ Ссылка