1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Плагин [ADMIN/SEC/MISC] DiscordUtils v5.0.1 - Discord-бот для сервера Minecraft [1.8+]

Тема в разделе "Неподтвержденные плагины", создана пользователем mirrerror, 5 ноя 2021.

  1. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    DiscordUtils - Discord-бот для сервера Minecraft
    Актуальная версия: v5.0.1​

    Данный плагин позволяет Вам хостить своего бота для Discord на сервере Minecraft.​

    Особенности:
    • Возможность привязать свой игровой аккаунт к аккаунту в Discord;
    • Двухфакторная аутентификация через Discord;
    • Сессии двухфакторной аутентификации (можно отключить в конфиге);
    • Прочие команды бота (например, узнать онлайн сервера через Discord и так далее);
    • Возможность интеграции с плагином на пермишены для автоматической выдачи ролей в Discord;
    • Возможность полностью кастомизировать сообщения;
    • Возможность выдавать награды за то, что игроки сидят в голосовых каналах в Discord;
    • Автоматическая проверка обновлений (можно отключить в конфиге);
    • Возможность приглашать игроков на сервере в голосовой канал, в котором вы находитесь, прямо в игре;
    • Синхронизация никнеймов в Discord и в игре;
    • Анимированная активность бота;
    • Интеграция с PlaceholderAPI, свои переменные;
    • Возможность включить виртуальную консоль на вашем сервере в Discord (там можно выполнять команды от имени консоли и просматривать полный лог консоли) (только для администраторов);
    • Возможность логировать некоторые события с вашего сервера в Minecraft на ваш сервер в Discord (заход на сервер, выход с сервера, смерть, сообщение в чат);
    • Возможность уведомления верифицированных игроков о их упоминаниях в Discord;
    • Поддержка слеш-команд;
    • Возможность создать чат между игроками в Minecraft и верифицированными пользователями Discord;
    • Поддержка hex-цветов в сообщениях;
    • Возможность принуждать определенные роли или группы проходить двухфакторную аутентификацию;
    • Возможность выбирать и скачивать официальные переводы плагина в настройках;
    • Возможность создавать собственные триггеры на игровые события;
    • Возможность создавать информационные каналы (позволяет менять название настроенных каналов каждые N секунд, также там можно использовать переменные PlaceholderAPI);
    • Возможность создавать свои дополнения для плагина, используя DiscordUtils API.
    Список команд бота:
    ~ Discord:
    • /help — помощь по командам;
    • /link — привязать свой аккаунт в Discord к аккаунту в игре;
    • /online — узнать количество игроков онлайн (на сервере);
    • /stats [ник] — посмотреть свою статистику или статистику другого игрока (базируется на плейсхолдерах PAPI) (если не указать ник, то плагин отобразит вашу статистику);
    • /unlink — отвязать свой аккаунт в Discord от аккаунта в игре;
    • /sudo — выполнить команду на сервере от имени консоли (только для администраторов);
    • /embed — отправить embed-сообщение (только для администраторов).
    ~ Сервер:
    • /du help — помощь по командам (пермишен:
      discordutils.discordutils.help) (алиасы: /du h);
    • /du link — привязать свой аккаунт в Discord к аккаунту в игре (пермишен: discordutils.discordutils.link);
    • /du unlink — отвязать свой аккаунт в Discord от аккаунта в игре (пермишен: discordutils.discordutils.unlink) (алиасы: /du ulink);
    • /du secondfactor — включить/выключить двухфакторную аутентификацию (пермишен: discordutils.discordutils.secondfactor) (алиасы: /du 2fa);
    • /du sendtodiscord — отправить сообщение с игрового сервера на Discord-сервер (пермишен: discordutils.discordutils.sendtodiscord) (алиасы: /du sendtodis, /du std, /du stodis, /du stdis);
    • /du voiceinvite [игроки] — пригласить всех игроков на сервере (или только указанных игроков) в голосовой канал в Discord, в котором Вы находитесь (пермишен: discordutils.discordutils.voiceinvite) (алиасы: /du vinvite, /du vcinvite, /du vinv, /du vcinv);
    • /du getdiscord — узнать Discord верифицированного игрока (пермишен: discordutils.discordutils.getdiscord) (алиасы: /du gdis, /du gdiscord, /du gd);
    • /dua reload — перезагрузить конфиг-файлы (пермишен:
      discordutils.discordutilsadmin.reload) (алиасы: /dua rl, /dua rel);
    • /dua forceunlink — принудительно отвязать Discord-аккаунт игрока от его игрового аккаунта (пермишен: discordutils.discordutilsadmin.forceunlink) (алиасы: /dua funlink, /dua fulink, /dua forceulink);
    • /dua stats — посмотреть админ-статистику (пермишен:
      discordutils.discordutilsadmin.stats) (алиасы: /dua stat);
    • /dua migrate — мигрировать данные из конфига/базы данных в ваш текущий менеджер данных (эта опция перезаписывает текущих пользователей) (пермишен:
      discordutils.discordutilsadmin.migrate) (алиасы: /dua mig, /dua migr).

    Список переменных PAPI:
    • %discordutils_islinked% — привязал ли игрок свой аккаунт к Discord;
    • %discordutils_2fa% — включил ли игрок двухфакторную аутентификацию;
    • %discordutils_discord% — привязанный Discord игрока.


    API:
    Maven:

    Код:
    <dependency>
        <groupId>io.github.mirrerror</groupId>
        <artifactId>discordutils</artifactId>
        <version>5.0.1</version>
        <scope>provided</scope>
    </dependency>
    

    Gradle:

    Код:
    implementation 'io.github.mirrerror:discordutils:5.0.1'
    
    Пример использования API: https://github.com/mirrerror/DiscordUtilsAPIUsageExample/tree/main


    Поддерживаемые на данный момент плагины для интеграции:
    • LuckPerms;
    • Vault (поддерживает множество плагинов).
    Настройка бота Discord для работы с плагином:



    Скачать плагин (SpigotMC)
    Исходный код
    Discord-сервер плагина
    Поддержать автора

    Буду рад любой конструктивной критике (смело указывайте на мои недочеты в плане качества кода и прочего), адекватным пожеланиям и предложениям.

    [​IMG]

    Лог изменений:
    • Фикс багов;
    • Оптимизация.

    • Фикс багов;
    • Оптимизация;
    • Обновлена система принуждения определенные роли или группы проходить двухфакторную аутентификацию.
    • Обновлен менеджер команд, чтобы он больше сочетался с API;
    • Убрана поддержка ивента MainGetReadyEvent.
    • Пофикшен критический баг, связанный с получением последнего времени буста.
    • Добавлен API;
    • Добавлена возможность отключать логирование определенных событий с вашего сервера в Minecraft в ваш сервер в Discord.
    • Переписана система отслеживания бустов, теперь она должна работать лучше;
    • Фикс багов;
    • Оптимизация.
    • Изменена команда /du sendtodiscord, теперь вы можете выбирать, в какой канал отправить сообщение, вместо того, чтобы настраивать это в конфиге;
    • Добавлена возможность не пускать игроков, которые не прошли двухфакторную аутентификацию, на сервер;
    • Обновлена команда /du voiceinvite, теперь вы можете указывать игроков, которых хотите пригласить в голосовой канал. Если не указать никого, то будут приглашены все игроки.
    • Добавлена слеш-команда /unlink;
    • Добавлена команда /dua migrate, теперь вы можете легко мигрировать ваши данные с конфига data.yml в базу данных и наоборот (эта опция перезаписывает существующих пользователей);
    • Оптимизация;
    • Убраны ненужные сообщения из lang.yml.
    • Пофикшена инициализация бота.
    • Рефактор кода;
    • Оптимизация;
    • Фикс багов (включая баг с виртуальной консолью и бустами серверов);
    • Исключены ненужные библиотеки.
    • Реакции заменены на кнопки;
    • Добавлена возможность создавать информационные каналы (позволяет менять название настроенных каналов каждые N секунд, также там можно использовать переменные PlaceholderAPI);
    • Обновлены все зависимости.
    • Оптимизация;
    • Фикс багов;
    • Добавлен connection pool для баз данных, теперь они должны работать быстрее;
    • Добавлена возможность создавать собственные триггеры на игровые события.
    • Оптимизация;
    • Фикс багов;
    • Убрана поддержка non-slash команд в Discord;
    • Изменена структура файла bot_settings.yml, вам придется его переконфигурировать;
    • Добавлено подтверждение для отключения двухфакторной аутентификации;
    • Улучшен tab completion для команд;
    • Улучшена работа команды /dua reload.
    • Оптимизация;
    • Добавлены проверки на готовность бота и плагина. Теперь игроки не смогут зайти на сервер, пока бот и плагин не загрузились. Это сделано, чтобы не было случайных багов с двухфакторной аутентификацией.
    • Оптимизация;
    • Добавлен tab completion для команд.
    • Фикс багов;
    • Оптимизация;
    • Добавлена возможность принуждать определенные роли или группы проходить двухфакторную аутентификацию
    • Добавлена возможность выбирать и скачивать официальные переводы плагина в настройках.
    • Пофикшен критический баг с загрузкой БД при включении плагина.
    • Переделана система сообщений;
    • Обновлены зависимости;
    • Теперь плагин сам выбирает версию драйвера MySQL, в зависимости от версии Minecraft на сервере;
    • Убрана поддержка \n в игровых сообщениях;
    • Добавлена поддержка hex-цветов в сообщениях;
    • Теперь плагин будет отключаться при неуспешном запуске бота/БД.
    • Плагин был переписан с нуля;
    • Огромная оптимизация;
    • Новая система конфигов;
    • Пофикшено много багов;
    • Утечки памяти пофикшены;
    • Добавлено много уведомлений в консоль;
    • Добавлена возможность удалять сообщения бота в виртуальной консоли через определенное время;
    • Добавлена возможность указывать сразу несколько групп для одной роли в GroupRoles;
    • Добавлена возможность указывать каналы-исключения в NotifyAboutMentions;
    • Добавлена возможность посмотреть статистику игрока через !stats в Discord, используя упоминания (также можно упомянуть сразу несколько пользователей);
    • Добавлены собственные переменные PAPI;
    • Добавлена команда /dua stats (посмотреть админ-статистику);
    • Добавлена возможность создать чат между игроками в Minecraft и верифицированными пользователями Discord;
    • Добавлена поддержка слеш-команд;
    • Добавлена возможность устанавливать свою длину кода для 2FA и привязки.
    • Обработано исключение, которое может возникнуть при синхронизации имен;
    • Обработано исключение, которое может возникнуть в менеджере виртуальной консоли.
    • Добавлена возможность включить или отключить выдачу только основной группы игрока в синхронизации ролей;
    • Добавлена поддержка плейсхолдеров PAPI для формата синхронизации имен;
    • Оптимизация.
    • Пофикшен критический баг с синхронизацией ников
    • Все библиотеки были обновлены до последних версий
    • Добавлена команда !help
    • Добавлена возможность настроить команды, которые будут выполняться после успешного прохождения 2FA
    • Система конфигов была полностью переписана
    • Конфиги теперь автоматически генерируют отсутствующие поля
    • Создан новый файл конфигурации 'bot_settings.yml', туда перемещено большинство настроек
    • Добавлена возможность изменить онлайн-статус бота
    • Добавлена возможность полностью отключить синхронизацию ролей
    • Добавлена возможность полностью отключить синхронизацию ников
    • Добавлена возможность изменить формат синхронизации ников
    • Оптимизация
    • Небольшая оптимизация;
    • Пофикшен баг, заключающийся в том, что роль верифицикации не выдавалась при включенном типе хранения данных MySQL.
    • GuildVoiceRewards теперь работает в режиме реального времени;
    • Добавлена система антифарма для GuildVoiceRewards (время засчитывается, только если участник активен в голосовом чате - у него не выключен микрофон и наушники);
    • Добавлена возможность установить минимальное количество участников в голосовом канале для получения награды;
    • Добавлена возможность настроить команды, которые будут выполняться после того, как владелец аккаунта откажет в авторизации своего аккаунта в Discord;
    • Добавлена команда /dua forceunlink;
    • Подкоманда перезагрузки перемещена из команды /du в команду /dua;
    • Добавлена возможность автоматически очищать виртуальную консоль при каждой инициализации виртуальной консоли;
    • Добавлена возможность проверять статистику других игроков с помощью команды !stats через Discord (вы все еще можете использовать ее без каких-либо аргументов, чтобы проверить свою собственную статистику);
    • Оптимизация;
    • Добавлены алиасы подкоманд.
     
    Последнее редактирование: 14 фев 2024
  2. LOVEC3327

    LOVEC3327 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    LOVEC3327
    Используй VaultAPI и будут у тебя поддерживаться почти все плагины на пермишены.
     
    Последнее редактирование: 5 ноя 2021
  3. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Учту и добавлю в следующей версии, спасибо.
     
  4. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Лучше тогда в опенсорс кинь, тот же гитхаб. Декомпилировать, конечно, можно, но при этом всегда что-то теряется.
     
  5. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Доступна новая версия — v 1.1.
    Список изменений:
    • Добавлена поддержка интеграции с Vault, который в свою очередь поддерживает множество плагинов
    • Мелкие правки в коде
    • Открыл исходники на GitHub'е
    • Добавил видео-объяснение, как настроить бота для работы с плагином
     
    Последнее редактирование: 5 ноя 2021
  6. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Добавил
     
  7. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    @imDaniX, я все еще жду критики по коду :)
     
  8. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Пройдусь, но немного:

    Несколько напрягает количество статики - не критично, но пока не поздно, стоит задуматься об избавлении от неё, иначе рано или поздно упрёшься в монолитность.
    Использовать enum затея интересная, но абсолютно бесполезная в данном случае, хотя бы потому что экземпляр используется лишь раз.
    Автоматическую проверку обновлений следует делать опциональной. Если ты вдруг ты удалишь репо, изменишь локацию файла, или же сменишь ник и название проекта, будет весьма неприятно - есть вероятность, что повлечет к крашу, а если нет, то к ошибки. К тому же, подключение к интернету следует оформлять в асинхроне.
    В Events можно было бы упростить проверку и отмену событий - сделать отдельный метод для этого, который бы принимал Player и Cancellable - уменьшит количество кода.
    Регистрацию слушателя следует перенести в основной класс, просто для лаконичности.
    Когда работаешь с безопасностью, следует использовать SecureRandom.
    replaceAll работает с регулярками. Для обычной подмены символов следует воспользоваться replace, либо, в данном случае, StringUtil.remove(message, ' '). Использование не единичное - тут уж сам поищи.
    Здесь следовало бы найти способ искать группу по-быстрее - если среди значений нет повторений, то было бы неплохо изменить карту на Map<String, Long>.
    Можно упростить до проверки на null.
    Спагетти-код. Вместо этого следует
    PHP:
    if (проверка) {
        
    сообщение;
        return;
    }
    if (
    проверка) {
        
    сообщение;
        return;
    }
    // ...
    кодПослеПроверок;
    Ни в коем случае не говорю, что так следует делать всегда, но когда так много проверок стоят близко и создают новые блоки, читать становится проблематично - особенно учитывая, что после каждого фейла ты отсылаешь сообщения, которые стоят вообще в другом месте.
     
  9. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Большое спасибо, учту в следующем обновлении, да и вообще когда буду писать что-то.
     
  10. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Доступна новая версия — v 1.2.
    Список изменений:
    • Оптимизация кода
    • Теперь подключение бота и проверка обновлений выполняются асинхронно
    • Добавлена команда /du help
    • Добавлена возможность отключить проверку обновлений (через конфиг)
    P.S. Спасибо за советы от imDaniX.
     
    Последнее редактирование: 6 ноя 2021
  11. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Доступна новая версия — v 1.3.
    Список изменений:
    • Добавлены сессии для двухфакторной аутентификации (если айпи игрока сохраняется, то вводить код повторно не нужно) (можно отключить в конфиге)
    • Добавлена возможность менять режимы двухфакторной аутентификации в конфиге (доступные режимы - code (ввод кода в игре), reaction (авторизация через клик на реакцию в Discord))
    • Добавлена возможность узнать айпи-адрес заходящего на аккаунт
     
  12. InterestingYT

    InterestingYT Участник

    Баллы:
    31
    Имя в Minecraft:
    _MrInteresting_
    Плагин очень хороший, как я понял он только не давно был создан! Автор плагин, очень хороший человек! Предлагайте ему идеи для улучшения плагина, так как многие из них он спокойно делает! Желаем хорошего продвижения плагину!
     
  13. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Спасибо за отзыв :)
     
  14. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Доступна новая версия — v 1.4.
    Список изменений:
    • Исправлено несколько недочетов в коде
     
  15. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
  16. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Доступна новая версия — v 1.5.
    Список изменений:
    • Переписана система генерации кодов для верификации и 2FA
    • Небольшая оптимизация
     
  17. walerr

    walerr Новичок Пользователь

    Баллы:
    6
    А как выдать администратора

    Ошибка
    У вас недостаточно прав для использования данной команды.
    Bot by mirrerror#4790
     
  18. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    В AdminRoles в конфиге прописываешь ID ролей, которые являются административными, только у них работает !sudo
     
  19. walerr

    walerr Новичок Пользователь

    Баллы:
    6
    Ну я создал роль администратора, и выдал себе и боту и нет прав.
     
  20. Автор темы
    mirrerror

    mirrerror Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    mirrerror
    Ты в конфиге прописал ее id?
     

Поделиться этой страницей