Как сделать таймер который будет длится 10 секунд и обновлять сообщение, с функцией bot.wait_for (Discord.Py Python)

Хочу чтобы мой бот с функцией bot.wait_for() обновлял свое сообщение Embed в течении 10 секунд, чтобы было видно сколько времени осталось до ответа. Как это сделать?

emb = discord.Embed(
    title='Угадайте страну по флагу!',
    description=f'Флаг: {flag}\nОсталось времени: {duration} секунд',
    color=discord.Colour.green()
)
msg = await ctx.send(embed=emb)

def check(m: discord.Message):

    if mode == 'private':
        return m.author.id == ctx.author.id and m.channel.id == ctx.channel.id
    elif mode == 'public':
        return m.channel.id == ctx.channel.id
    else:
        return m.channel.id == ctx.author.id and m.channel.id == ctx.channel.id
    
            

try:
    msg = await bot.wait_for('message', check = check, timeout = time)

Тут часть кода и мне надо обновлять Embed-сообщение (переменная emb) примерно 10 секунд, т.е. чтобы он показывал сколько времени осталось до того, как кто-то ответит на сообщение бота.


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

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

Могу посоветовать что-то такое

emb = discord.Embed(
    title='Угадайте страну по флагу!',
    description=f'Флаг: {flag}\nОсталось времени: {duration} секунд',
    color=discord.Colour.green()
)
msg = await ctx.send(embed=emb)

def check(m: discord.Message):
    if mode == 'private':
        return m.author.id == ctx.author.id and m.channel.id == ctx.channel.id
    elif mode == 'public':
        return m.channel.id == ctx.channel.id
    else:
        return m.channel.id == ctx.author.id and m.channel.id == ctx.channel.id

async def update_embed():
    emb.description = f'Флаг: {flag}\nОсталось времени: {duration} секунд'
    await msg.edit(embed=emb)
while duration > 0:
    await update_embed()
    duration -= 1
    time.sleep(1)


try:
    msg = await bot.wait_for('message', check = check, timeout = time)
→ Ссылка