У меня есть код по выдаче бана. У меня сделано удаление роли через опр. промежуток с помощью await asincio.sleep. Но с этим есть проблемы. Если бот выключается - всё багается. Как через Pymongo сделать занос времени окончания наказания(в бд) и проверку относительно окончания. Т.е. если время сейчас больше чем время окончания наказания то продолжается команда, или снимается роль.
Думаю не очень поможет но ниже код.
Код
@bot.command()
async def ban(ctx, member:discord.Member, time, *, arg):
ban_role = discord.utils.get(ctx.author.guild.roles, id=896315064817168414)
emb = discord.Embed(
title='Бан',
description=f'{ctx.author.mention}, вы **выдали** бан пользователю {member.mention}'
)
emb.add_field(namef='> **Время:**', value=f'```{time}```')
emb.add_field(namef='> **Причина**', value=f'```{arg}```')
emb.set_thumbnail(url=ctx.author.avatar_url)
await ctx.send(embed=emb)
await member.add_roles(ban_role)
time = convert(time)
await asyncio.sleep(time)
await member.remove_roles(ban_role)
Хотелось бы получить ответ понятный и с примером.