Скачайте подходящий JAR на примере LuckPerms
Убедитесь, что сервер действительно Paper: в его консоли выполните version. Откройте официальную загрузку LuckPerms, выберите Bukkit для Paper/Spigot и скачайте файл. Это серверный плагин: клиентам устанавливать его не требуется. Для другого плагина так же проверьте платформу и требуемую Java на странице автора.
До копирования запишите исходное имя файла и ссылку в plugins-installed.txt. В PowerShell проверьте файл через Get-FileHash .\LuckPerms-Bukkit.jar -Algorithm SHA256, заменив имя фактическим; в Linux используйте sha256sum LuckPerms-Bukkit.jar. Такой хеш помогает узнать тот же файл при переносе, а происхождение подтверждается официальной страницей загрузки.
Положите файл в правильную папку
В консоли тестового сервера выполните stop; дождитесь завершения Java. Откройте папку, в которой лежит запускаемый paper.jar, затем plugins. Создайте её, если она ещё не появилась. Скопируйте туда JAR без распаковки. Не оставляйте старую и новую версии одного плагина одновременно.
Запустите сервер своей обычной командой. Откройте logs/latest.log, найдите LuckPerms и сообщения загрузки. В консоли выполните plugins, затем lp info. Успех — плагин включён и отвечает о своей версии/хранилище. Общая процедура описана в Adding plugins.
Проверьте настройки и доступ
LuckPerms создаёт plugins/LuckPerms/config.yml. Для первого теста оставьте штатное локальное хранилище; подключение внешней БД требует её адреса, пользователя и отдельной проверки. Перед редактированием сделайте копию файла, например config.yml.before-test. Смотрите справочник конфигурации LuckPerms.
- В консоли сервера выполните
deop ВашНик, затем зайдите этим аккаунтом. Сначала проверяйте без OP: широкие административные возможности иначе скрывают ошибки прав. - В игре введите
/lp info. Обычный игрок должен получить отказ, пока ему не выдан доступ управления. В консоли та же команда работает без слеша. - Штатно остановите и снова запустите сервер; повторите
lp infoв консоли. Если появилась ошибка БД или YAML, читайте первую причину вlogs/latest.logи исправляйте её до выдачи групп.
Верните прежний набор при отказе
Для удаления только что добавленного плагина остановите сервер и переместите его JAR из plugins в соседнюю папку disabled-plugins. Сохраните папку plugins/LuckPerms: удаление бинарника и удаление данных — разные действия. После старта убедитесь, что ошибка исчезла и другие плагины загрузились.
Для обновления существующего плагина сохраните заранее его JAR и данные, поскольку новый выпуск может изменить схему БД. После неудачной миграции восстановите согласованный прежний комплект на остановленном сервере; простая замена JAR не гарантирует чтение новой схемы старым кодом.
Составьте карточку нового компонента
До загрузки запишите имя проекта, автора, выпуск, поддерживаемое ядро, Java и обязательные зависимости. Сохраните ссылку на официальный файл, а не только поисковую страницу. У похожих проектов могут быть одинаковые названия. Если разработчик подписывает выпуски или публикует контрольную сумму, сверяйте её с полученным файлом и храните рядом с перечнем версий.
Просмотрите, какие команды, права и каталоги создаёт плагин. Для экономики особенно важно понять, является ли он хранилищем денег или лишь потребителем Vault. Для инвентарей — какие миры и режимы он охватывает. Если заменяется существующая функция, сначала выясните, как читаются прежние данные, иначе два красивых интерфейса могут работать с двумя независимыми балансами.
Различайте платформы
Paper-плагин помещают в plugins, мод NeoForge или Fabric — в собственную сборку загрузчика. Наличие JAR у обоих форматов не означает взаимозаменяемость. Даже среди серверных проектов поддержка Folia должна быть заявлена отдельно: отличие потоковой модели нельзя исправить перемещением файла. Ориентируйтесь на документированные платформы конкретного выпуска.
Сначала подтвердите штатный запуск и сохранение сервера, затем добавляйте расширение. Рабочий чистый Paper.
Изолированный запуск и чтение журнала
Скопируйте серверные данные для проверки, замените внешние адреса тестовыми и отключите рабочие платежи. Положите новый JAR и обязательные зависимости в plugins, затем выполните штатный запуск. В журнале найдите строки загрузки именно этого проекта и первое исключение. Более позднее «команда неизвестна» может быть следствием того, что плагин не включился раньше.
Если сообщение указывает missing dependency, установите требуемую зависимость в совместимом выпуске. UnsupportedClassVersionError направляет к версии Java, а отсутствие метода может указывать на несовпадение API. Не загружайте случайные библиотеки по похожему имени. Сравните условия выпуска с вашей карточкой и повторяйте тест после одного осмысленного изменения.
После первого запуска плагин обычно создаёт настройки и каталоги данных. Меняйте их при остановленном процессе либо через документированную команду загрузки конфигурации. Не используйте общий reload как универсальную кнопку установки. У плагина могут оставаться задачи, слушатели и соединения; штатный полный рестарт даёт определённый цикл включения и выключения.
Проверяйте функцию с обычными правами
Заведите тестового игрока без OP и выполните основную команду. Затем проверьте алиас, вкладку меню, запрещённое действие и повторный вход. Если действие связано с деньгами, проверьте недостаточный баланс и двойной быстрый клик. Для награды — повторное завершение, выход во время выдачи и поведение после рестарта.
- Запустите компонент с обязательными зависимостями.
- Проверьте журнал и созданную конфигурацию.
- Выполните действие от обычного игрока и администратора.
- Подтвердите запись результата после штатного рестарта.
- Проверьте конфликт команд с уже установленными проектами.
- Запишите способ удаления и восстановления прежнего состояния.
Рабочая команда у OP ещё не доказывает доступность нужной группы. Проверка прав игрока.
Удаление тоже требует понимания данных
Если эксперимент не подошёл, остановите тестовый сервер и уберите его JAR вместе с осознанно выбранными зависимостями. Общую библиотеку других плагинов не удаляйте автоматически. Каталог данных сохраните до выяснения, нужна ли миграция или возврат прежней функции. Удалённый JAR не отменяет уже изменённые базы и предметы мира.
После успешного теста переносите в production тот же файл и согласованные настройки. Повторная загрузка «последней версии» в день активации превращает проверенный выпуск в непроверенный. Запишите наблюдаемый результат для игрока: какая команда появилась, какие права выданы и что сохраняется. По этой записи удобно проверять последующие обновления.



