Вы можете перехватить исключение в обработчике исключений и оттуда вызвать команду вручную.
@client.command()
@commands.cooldown(...)
async def bot_command(ctx):
pass
@bot_command.error
async def bot_command_error(ctx, error):
if isinstance(error, CommandOnCooldown):
if ctx.author.id in list_of_ids:
args = ()
kwargs = {}
await ctx.invoke(ctx.command, *args, **kwargs)
else:
raise error
Обратите внимание, что Context.invoke
ничего не делает, но вызывает обратный вызов с предоставленными аргументами. Вам придется самостоятельно обрабатывать все входные преобразования, перехваты вызова до / после и т. Д.