Есть специальный декоратор, который вешает кулдаун на команду
@commands.cooldown(1, 30, commands.BucketType.user)
1 - кол-во использований команды
30 - время в секундах, через сколько можно использовать команду еще раз
commands.BucketType.user - ограничение для пользователя
Советую прочитать описание декоратора, чтобы понимать:
https://github.com/Rapptz/discord.py/blob/async/di...
Когда кулдаун тригерится, он вызывает
on_command_error
Дальше уже в этой функции делаете что вам нужно. Пример для КД 14 дней:
@commands.cooldown(1, 14*24*60*60, commands.BucketType.user)
@bot.command()
async def work(ctx):
await ctx.send('hello')
@bot.event
async def on_command_error(ctx, error):
if isinstance(error, commands.CommandOnCooldown):
retry_after = str(datetime.timedelta(seconds=error.retry_after)).split('.')[0]
await ctx.send(f'**Вы устали! Приходите через {retry_after}**')
Форматирование вроде
20:30:14 PM
или
00d 00h 00m 00s
уже сами сделаете с помощью
strftime