@Telmor

Как сделать сохранение времени через pymongo, что бы даже если бот offline время шло?

У меня есть код по выдаче бана. У меня сделано удаление роли через опр. промежуток с помощью 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)

Хотелось бы получить ответ понятный и с примером.
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Kadabrov
Добавьте столбец в таблицу пользователя окончание бана, и при входе на сервер роль бан, проверяйте разницу между записанным временем и текущим, если дельта отрицательная , то даём роль предыдущую до бана или присвоить нужную
Ответ написан
@kirillinyakin
Хотя бы гуглили, как можно забанить тут
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы