discord.js mysql cooldown

149
11 апреля 2022, 05:30

Как сделать кулл даун? пример: Пользователь пишет daily данные записываются в дб и создается кулдаун например на 12 часов. если он пишет команду например через 1 час ему должно выдать что ввести эту команду можно будет снова 11.02.2020 в 22:17

Answer 1

Для вашего вопроса существует множество вариантов реализации и разные варианты будут иметь разную сложность проработки.

Если говорить абстрактно, вам необходимо выполнить следующие шаги для реализации задачи:

  1. Каждая ваша команда должна вызываться из отдельного файла ( Например через Command Helper)
  2. Каждой команде необходимо присвоить некий ID, для идентификации ее в БД.
  3. Следующим шагом будет определение структуры вашей базы данных: Вы можете задать Cooldown статично, например как один из параметров command Handler, или же сделать соответствующую таблицу в БД и создать логику настройки данного Cooldown через комманду. Первый вариант более простой для для начальной реализации.
  4. Создаете Базу данных, в которой вы будуте хранить ваши cooldown с примерно таким набором полей (guild_id, user_id, command_id, end) Где:

guild_id - ID сервера, user_id - ID пользователя, command_id - ID комманды, end - время в формате timestamp после которого можно использовать комманду снова.

  1. При использование команды делаете селект по указанным параметрам, если значение БД не найдены, комманду можно использовать и в БД необходимо сделать Insert с указанными выше параметрами.
  2. Если какой-то результат найден, сравниваем даты, в случае если new Date().getTime() меньше end, выводим ошибку, если больше - разрешаем использование команды и устанавливаем новый cooldown (в поле end значение new Date().getTime() + cooldown в секундах)
READ ALSO
Поиск верхнего родителя

Поиск верхнего родителя

Есть массив ОбъектовВ объекте данные об имени, id и если есть родительский элемент, то еще и родительский элемент

299
Ajax метод POST не отправляет на сервер данные

Ajax метод POST не отправляет на сервер данные

Дело в том, что ajax не отправляет данные на серверПодскажите пожалуйста из-за чего такое может быть

171
Равновеликие массивы

Равновеликие массивы

Назавём две массивы равновеликими , если только один раз в одном из массивов, сменив места одной пары из элементов , мы получим другой массивНапример...

212
Сохранение выбранных значений в поле в Select2

Сохранение выбранных значений в поле в Select2

Всем привет! Я использую плагин Select2 для выбора значенийЯ выбираю значения, они красиво вставляются в input

85