Перейти к содержанию

Описание

Этот модуль обеспечивает автоматизированное и гибкое управление победителями событий, облегчая отслеживание событий на сервере, при этом оставляя серверу свободу использовать эту роль по своему усмотрению. Благодаря этой роли вы сможете использовать ее для присвоения специальных разрешений, предоставления эксклюзивных преимуществ или просто для признания активных членов вашего сообщества.

После указания названия, описания, изображения (необязательно) и имени автора сообщения (необязательно):

Изображение добавления сообщения с анимацией

Вы получите персонализированное сообщение с анимацией, которое будет автоматически отправлено в канал, указанный в файле .env, как показано ниже:

Изображение результата сообщения с анимацией

Вы можете просматривать список и добавлять победителей событий с помощью слэш-команды /animation-add. При добавлении количества дней оно суммируется с оставшимися днями участника, если он уже был победителем предыдущего события:

Изображение команды добавления победителя анимации

Каждый день в 23:59 модуль проверяет, следует ли снять роль победителя события у участника.

  • Модуль не будет работать только при скачивании файлов; он должен быть интегрирован в уже работающего Discord‑бота.
  • Для управления базой данных мы используем Prisma в качестве ORM; убедитесь, что ваш проект также использует Prisma или адаптируйте код под вашу систему.
  • Рабочий Discord‑бот с правами, необходимыми для регистрации слэш‑команд.
  • Необходимы знания по разработке Discord‑ботов (JavaScript) и управлению базами данных для использования и адаптации этого скрипта под ваши нужды.
  • Каталогcommands
    • animation-add.js реализация слэш‑команды /animation-add
    • animation-list.js реализация слэш‑команды /animation-list
    • animation-remove.js реализация слэш‑команды /animation-remove

      аргумент “id_user” обязателен: ID пользователя, которого нужно удалить из списка победителей
    • animation-message.js реализация слэш‑команды /animation-message

      аргумент “id_role” необязательный: при передаче сообщение отметит этот рол

      аргумент “id_message” необязательный: при передаче сообщение будет изменено вместо создания нового
  • Каталогevents
    • interactionCreate.js Файл восстановления взаимодействий
  • Каталогprisma
    • schema.prisma модель данных для модуля (Prisma)
  • Каталогutils
    • Каталогarguments
      • post-message.js список аргументов для команды отправки сообщения с анимацией
    • animation.js вспомогательные функции для управления победителями
  • .env необходимые переменные окружения
  • index.js точка входа скрипта
  • package.json зависимости

Ниже указаны версии, использованные при разработке и тестировании скрипта:

  • @prisma/client@6.18.0
  • discord.js@14.24.0
  • dotenv@16.6.1
  • node-schedule@2.1.1
  • moment@2.30.1