@IIIpaklevka

Реально ли выдать CoolDown на команду по условию discord py?

Я реализовываю систему премиум-пользователей в своём боте на discord py.
Основным бонусом премиум-пользователя является пользование командами без ограничений, но обычным пользователям необходимо выдавать cooldown на использование команды. Не знаете, как это реализовать?

@client.command(aliases=['ai'])
async def __ai(ctx, prompt = None):
    #тут кусок кода
    if cursor.execute(f"SELECT premium FROM premusers WHERE id = {ctx.guild.id}").fetchone()[0] != 1:
        #тут надо выдать CoolDown на использование комманды
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
f"SELECT premium FROM premusers WHERE id = {ctx.guild.id}"

Используй параметризованные запросы, а не форматирование.

А что касается кулдауна - достаточно почитать документацию.

@discord.app_commands.checks.dynamic_cooldown(factory, *, key=...)

If a factory function is given, it must be a function that accepts a single parameter of type discord.Interaction and must return a Cooldown or None. If None is returned then that cooldown is effectively bypassed.

Выделение моё.
Т.е. тебе надо написать функцию, которая принимает объект типа discord.Interaction и возвращает или объект Cooldown, описывающий, какой кулдаун надо применить, или None, если кулдауна быть не должно. Потом передаёшь эту функцию как параметр декоратора dynamic_cooldown, и готово. Пример есть по ссылке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы