Плагин для Paper и Spigot — это один JAR-файл (архив Java) в папке plugins. Если файл поврежден, пуст, лежит в двух экземплярах или на самом деле является модом или библиотекой, сервер не загрузит плагин или упадет при запуске. Каждый раздел ниже посвящен одному из таких сообщений. Через «Подробнее» в разделе Состояние сервера ты попадешь сразу к нужному.
Полный текст сообщения ты найдешь в Консоль или в разделе Файлы в logs/latest.log. Чаще всего важны строки прямо под сообщением, ведь именно там указана настоящая причина. Заменяй файлы плагинов только при остановленном сервере. Заранее создай резервную копию в разделе Резервные копии, особенно если могут быть затронуты файлы мира или конфигурации.
«Error occurred while enabling …»: плагин не запускается
Так выглядит сообщение:
Error occurred while enabling EssentialsSpawn v<Version> (Is it up to date?)
Error occurred while enabling WorldEditDisplay v<Version> (Is it up to date?)
Error occurred while disabling FurnitureLib v<Version>
В чём причина: сервер загрузил плагин, но при его активации произошёл сбой, и плагин был отключён. Сервер продолжает работать, однако функции этого плагина полностью отсутствуют. Если это плагин защиты, прав или авторизации, то и эта защита не работает. Чаще всего плагин не подходит к другой версии сервера или плагина, чем установленная.
Как это исправить:
- В строке с ошибкой указаны плагин и версия. Проверь на странице плагина, какой выпуск поддерживает твоя версия сервера, и обнови его при остановленном сервере.
- Если ниже стоит
NoSuchMethodError(отсутствует метод) илиNoClassDefFoundError(отсутствует программный компонент), проверь указанные зависимости. Например, EssentialsSpawn и EssentialsX должны соответствовать друг другу; упоминание Bukkit может относиться к интерфейсу сервера. - При ошибке базы данных, например
Communications link failure, проверь данные доступа в конфигурации плагина и в разделе Базы данных. - Перезапусти сервер и проверь в Консоль, успешно ли активируется плагин.
Полезно знать: «Error occurred while disabling» относится к отключению. Если оно возникает после ошибки активации, сначала разберись с этой более ранней ошибкой. Подробнее: Плагин не подходит к версии сервера.
Файл плагина пропускается («Could not load 'plugins/…jar'»)
Так выглядит сообщение:
[ModernPluginLoadingStrategy] Could not load 'plugins/<Plugin>.jar' in 'plugins'
org.bukkit.plugin.UnknownDependencyException: Unknown/missing dependency plugins: [ProtocolLib]. Please download and install these plugins to run '<Plugin>'.
В чём причина: Сервер не смог загрузить указанный JAR как плагин и пропускает его. JAR (архив Java) — это файл, в котором находится плагин. Остальной сервер может продолжать работать, но этот плагин полностью отсутствует. Причина — повреждённый или недопустимый файл либо JAR без читаемого plugin.yml, файла описания, по которому сервер распознаёт плагин. Если указано «Failed to run bootstrapper», плагин Paper завершился с ошибкой на самой ранней стадии запуска.
Как это исправить:
- Прочитай строку под сообщением. Если там стоит
UnknownDependencyException, не хватает другого плагина: установи плагин, указанный в квадратных скобках. - В остальных случаях останови сервер и удали проблемный JAR в разделе Файлы в папке
plugins. - Скачай сборку из надёжного источника, подходящую к типу твоего сервера (Paper, Spigot) и твоей версии Minecraft, и загрузи её.
- Перезапусти сервер.
Полезно знать: Если путь указывает на plugins/.paper-remapped, это копия, которую Paper создаёт для плагинов Spigot. Замени оригинальный JAR в plugins, копию Paper создаст заново при следующем запуске. О недостающих плагинах: Плагину нужен другой плагин.
„Error initializing plugin …“: плагин не запускается
Так выглядит сообщение:
[<Plugin>] Error initializing plugin '<Plugin>-<Version>.jar' in folder '<Folder>' (Is it up to date?)
java.lang.ExceptionInInitializerError
java.lang.ArrayIndexOutOfBoundsException: Index <Index> out of bounds for length <Length>
В чём причина: плагин аварийно завершился, пока сервер его подготавливал, то есть ещё до того, как он был активирован. Он остаётся отключённым, его команды и функции недоступны, а сервер продолжает работать без него. Чаще всего версия плагина не подходит к версии сервера. Строка с ошибкой ниже часто указывает версию или отсутствующий класс, то есть часть программы, которую плагин ожидает найти на сервере.
Как это исправить:
- Сначала прочитай следующие строки в
logs/latest.logв разделе Файлы, особенноCaused by. В них указана настоящая причина. - Установи версию плагина для твоей версии сервера или обнови плагин. На странице плагина указаны поддерживаемые версии.
- Если для твоей версии сервера ещё нет подходящего выпуска, дождись обновления плагина или пока оставайся в разделе Версия на поддерживаемой версии.
- Если это не помогает, для проверки удали плагин и сообщи об ошибке автору плагина, приложив сообщение целиком.
- Перезапусти сервер.
Полезно знать: если Geyser сообщает «English locale not found», файл неполный. Скачай Geyser заново с официальной страницы проекта. Подробнее: Плагин не подходит к версии сервера.
Paper не загружает плагин («Could not load plugin … in folder»)
Так выглядит сообщение:
[ModernPluginLoadingStrategy] Could not load plugin '<Plugin>-<Version>.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ExceptionInInitializerError
В чём причина: Paper не смог загрузить указанный плагин при запуске. Плагин полностью отсутствует, остальной сервер запускается. Причину называет строка сразу под сообщением, чаще всего это неисправный plugin.yml, недостающая зависимость или сборка для другой версии сервера. Сообщение про «API version string» означает, например, что указание версии в plugin.yml имеет формат, который твоя версия сервера не понимает.
Как это исправить:
- Прочитай строку сразу под сообщением.
- Скачай плагин заново, подходящий к твоей версии сервера.
- Останови сервер, в разделе Файлы удали старый JAR из
pluginsи загрузи новый. - Перезапусти сервер и проверь в Консоль, загружается ли плагин теперь.
Полезно знать: Если строка ниже называет недостающий плагин, проблема не в самом файле. Тогда поможет статья Плагину нужен другой плагин.
«Ambiguous plugin name …»: плагин установлен дважды
Так выглядит сообщение:
[ModernPluginLoadingStrategy] Ambiguous plugin name 'ViaVersion' for files 'plugins/ViaVersion.jar' and 'plugins/ViaVersion-<Version>.jar' in 'plugins'
[ModernPluginLoadingStrategy] Ambiguous plugin name 'LPC' for files 'plugins/.paper-remapped/LPC-<Version>.jar' and 'plugins/.paper-remapped/LPC-<OtherVersion>.jar' in 'plugins/.paper-remapped'
[ModernPluginLoadingStrategy] Ambiguous plugin name 'Slimefun' for files 'plugins/.paper-remapped/<File>.jar' and 'plugins/.paper-remapped/<OtherFile>.jar' in 'plugins/.paper-remapped'
В чём причина: два JAR-файла сообщают одно и то же внутреннее имя плагина, даже если их имена файлов различаются. Обычно это старая и новая версии или два варианта одного и того же плагина. Сервер загружает только один из них и, возможно, работает с нежелательной версией.
Как это исправить:
- Останови сервер и открой в разделе Файлы папку
plugins. - Сопоставь два названных файла с их исходными JAR. В
plugins/.paper-remappedлежат копии, адаптированные Paper; удали нежелательный исходный JAR вplugins, а не только его копию. - Оставь ровно один выпуск, подходящий к твоей версии сервера. Не удаляй папки с данными плагинов.
- Перезапусти сервер. Проверь Консоль на наличие сообщения; команда
pluginsпоказывает загруженные плагины.
Полезно знать: обновляй плагины при остановленном сервере и удаляй старый JAR перед загрузкой нового.
„does not contain a paper-plugin.yml or plugin.yml“: файл не является плагином
Так выглядит сообщение:
Directory 'plugins/<Mod>-fabric-<Version>.jar' does not contain a paper-plugin.yml or plugin.yml!
Directory 'plugins/<Mod>-neoforge-<Version>.jar' does not contain a paper-plugin.yml or plugin.yml!
В чём причина: в папке plugins лежит JAR-файл без plugin.yml и без paper-plugin.yml, то есть без одного из файлов описания плагинов. Чаще всего это мод для Fabric, Forge или NeoForge; иногда это Java-библиотека, например драйвер базы данных. Paper и его варианты не могут загрузить такой файл как плагин и пропускают его. Сервер продолжает работать, но нужной функции нет.
Как это исправить:
- Останови сервер и удали указанный файл из
plugins/в разделе Файлы. - Поищи на странице проекта выпуск для Paper или Spigot, подходящий к твоей версии Minecraft.
- Если есть только мод, сначала проверь, нужен ли он вообще на сервере. Некоторые моды работают только в игровом клиенте.
- Если хочешь перейти на сервер с модами, заранее создай резервную копию в разделе Резервные копии. В разделе Сменить ПО / загрузчик выбери именно тот загрузчик, который требуется моду. Твои плагины для Paper там работать не будут.
- Перезапусти сервер и проверь Консоль.
Смену ПО описывает статья Смена серверного ПО и версии в панели.
„zip file closed“: файл плагина заменён во время работы сервера
Как выглядит сообщение:
java.lang.IllegalStateException: zip file closed
java.lang.IllegalStateException: The plugin classloader for <Plugin> has thrown a zip file error.
io.netty.handler.codec.EncoderException: java.lang.BootstrapMethodError: java.lang.IllegalStateException: zip file closed
В чём причина: JAR-файл плагина, то есть исполняемый файл плагина, был перезаписан или удалён во время работы сервера, либо кто-то использовал /reload. После этого плагин пытается подгрузить части программы из уже закрытого файла и выдаёт ошибки. Функции плагина могут не работать до перезапуска сервера. Сообщение может появляться и при остановке сервера.
Как это исправить:
- Полностью перезапусти сервер. Если нужный JAR-файл плагина отсутствует, сначала восстанови его в разделе Файлы при остановленном сервере.
- В дальнейшем заменяй файлы плагинов только при остановленном сервере: останови сервер, замени JAR в разделе Файлы, запусти сервер.
- Не используй
/reload. Эта команда перезагружает плагины во время работы сервера, и многие плагины с этим не справляются. - Если сообщение появилось без предварительной замены файлов, посмотри строки перед ним в Консоль. Они помогут найти проблемный плагин.
Полезно знать: изменения, которые плагин не успел сохранить на момент ошибки, могут быть потеряны.
«duplicate plugin identifier»: два файла плагинов претендуют на одно и то же имя
Так выглядит сообщение:
[ModernPluginLoadingStrategy] Could not load plugin '<Plugin>.jar' in folder 'plugins'
[ModernPluginLoadingStrategy] Could not load plugin '<Plugin>.jar' in folder 'plugins/.paper-remapped'
java.lang.IllegalStateException: … attempted to add duplicate plugin identifier <Plugin> …
В чём причина: два JAR-файла предоставляют одно и то же имя плагина; Paper загружает только один из них, а другой отклоняет. Чаще всего старая и новая версии плагина лежат рядом в папке plugins. Либо два плагина претендуют на одно имя: FastAsyncWorldEdit (сокращённо FAWE) уже содержит WorldEdit, поэтому дополнительный JAR WorldEdit конфликтует с ним. Сервер продолжает работать, но Paper прямо предупреждает о возможных последующих ошибках.
Как это исправить:
- Останови сервер.
- Во вкладке Файлы в папке
pluginsудали более старый или лишний JAR. В случае с FAWE это отдельный JARworldedit-bukkit. - Если в сообщении указан путь
plugins/.paper-remapped, сначала проверь исходные JAR-файлы в папкеpluginsна наличие дубликатов. - Запусти сервер и проверь в Консоли, что предупреждение исчезло и нужный плагин загружается.
Полезно знать: привычные команды WorldEdit продолжают работать с FAWE. О том, как строить с их помощью и отменять ошибки, рассказывает WorldEdit: выделение областей, строительство и отмена действий.
ProtocolLib предупреждает о перезагрузчике плагинов
Как выглядит сообщение:
*** ProtocolLib does not support plugin reloaders! ***
*** Please use the built-in reload command! ***
В чём причина: ProtocolLib глубоко вмешивается в сетевое соединение между сервером и игроками. Перезагрузчики плагинов — это плагины вроде PlugMan или PlugManX, которые загружают и выгружают отдельные плагины во время работы сервера. ProtocolLib этого не поддерживает и предупреждает о несогласованном состоянии. Тогда ProtocolLib и все плагины, которые на нём основаны, например античит или плагины отображения, могут работать некорректно.
Как исправить:
- Не перезагружай ProtocolLib и плагины, которые его используют, с помощью перезагрузчика плагинов.
- После изменений в плагинах полностью перезапускай весь сервер.
- Если перезагрузчик тебе не нужен, удали его из папки
pluginsв разделе Файлы, чтобы случайно не воспользоваться им. - Если ты только что использовал перезагрузчик, сейчас один раз полностью перезапусти сервер, чтобы всё загрузилось чисто.
Полезно знать: В сообщении рекомендуется встроенная команда перезагрузки. Она тоже перезагружает все плагины во время работы. Самый надёжный способ — полный перезапуск.
«Error loading plugin»: файл плагина или имя плагина недействительны
Так выглядит сообщение:
[DirectoryProviderSource] Error preparing plugin context: Directory 'plugins/<File>.jar' failed to update!
[DirectoryProviderSource] Error loading plugin: Directory 'plugins/<File>.jar' failed to load!
[DirectoryProviderSource] Error loading plugin: Restricted name, cannot use 0x20 (space character) in a plugin name.
В чём причина: файл в папке plugins не удаётся загрузить, поэтому плагин не запускается. Часто там оказывается исходный код (-sources.jar), документация (-javadoc.jar), неполностью скачанный файл или сборка для другой платформы. «Invalid plugin.yml» и «only DEFLATED entries can have EXT descriptor» тоже указывают на неподходящий файл. «Restricted name» с «0x20» означает, что имя плагина, указанное в plugin.yml, содержит пробел.
Как это исправить:
- Останови сервер и удали указанный JAR из
pluginsво вкладке Файлы. - Скачай нужный JAR плагина с официального сайта, подходящий для Paper или Spigot. Моды Fabric и Forge не должны лежать в папке
plugins. - Если загрузка приходит в виде ZIP-архива, распакуй его на своём компьютере и загрузи подходящий JAR.
- При ошибке «Restricted name» используй версию, исправленную разработчиком. Нужно исправить указанное имя плагина; другое имя файла эту ошибку не устранит.
- Перезапусти сервер и проверь Консоль.
Полезно знать: при замене JAR сохрани имеющиеся данные и конфигурации плагина.
Java-библиотека лежит как плагин в папке plugins
Как выглядит сообщение:
[DirectoryProviderSource] Error preparing plugin context: Directory 'plugins/asm-util-<Version>.jar' failed to update!
В чём причина: Java-библиотека, например ASM или Nashorn, лежит отдельным файлом в папке plugins. Библиотеки — это строительные блоки, которые плагины используют внутри, сами по себе они не являются плагинами. Paper не может ни загрузить этот JAR как плагин, ни обновить его, и пропускает его. Сервер продолжает работать. Такие файлы попадают туда, например, когда архив с несколькими файлами был загружен целиком.
Как исправить:
- Удали указанный JAR библиотеки из
pluginsв разделе Файлы. - Устанавливай только сам плагин. Он приносит свои библиотеки с собой или догружает их при запуске.
- Перезапусти сервер и проверь Консоль.
- Если после этого какой-то плагин сообщит, что ему чего-то не хватает, прочитай его инструкцию по установке вместо того, чтобы добавлять библиотеки вручную.
Полезно знать: Если плагину действительно нужен другой плагин, он прямо это указывает. Как это распознать: Плагину нужен другой плагин.
Файл плагина пуст («zip file is empty»)
Как выглядит сообщение:
[DirectoryProviderSource] Error loading plugin: zip file is empty
В чём причина: Файл в папке plugins имеет размер 0 байт или его загрузка была прервана. Paper не может его открыть и пропускает. Плагина нет, сервер продолжает работать. Часто так бывает, когда соединение обрывается при загрузке или когда скачивание уже на твоём компьютере было неполным.
Как исправить:
- В разделе Файлы открой папку
pluginsи найди файл размером 0 байт или заметно маленького размера. - Удали его.
- Заново скачай плагин из надёжного источника и загрузи его при остановленном сервере. Дождись полного завершения загрузки.
- Перезапусти сервер и проверь в Консоль, загружается ли плагин.
Полезно знать: При больших файлах или большом их количестве SFTP часто надёжнее, чем загрузка через браузер, см. Редактирование файлов сервера в панели и подключение по SFTP.
PlaceholderAPI: в файле расширения нет загружаемого класса расширения
Так выглядит сообщение:
[PlaceholderAPI] Failed to load expansion <File>.jar, as it does not have a class which extends PlaceholderExpansion
В чём причина: Расширение PlaceholderAPI добавляет дополнительные текстовые плейсхолдеры. JAR-файл проверяется, но нужный класс расширения найти или загрузить не удаётся. Это расширение остаётся отключённым. Сервер продолжает работать, но плейсхолдеры этого расширения не возвращают предусмотренных значений.
Как это исправить:
- Прочитай в Консоль сообщения, которые идут перед этой ошибкой. Другие ошибки загрузки могут указывать на отсутствующую зависимость.
- Проверь в разделе Файлы, действительно ли указанный файл является нужным расширением PlaceholderAPI. Перед заменой сделай его резервную копию.
- Заново скачай расширение, подходящее к установленной версии PlaceholderAPI, из его официального источника. Замени проблемный файл и удали дубликаты этого же расширения.
- Полностью перезапусти сервер. Затем проверь сообщение при запуске и один из плейсхолдеров, предоставляемых расширением.
Твоего сообщения нет в списке?
Прочитай сообщение целиком в Консоль или в logs/latest.log, включая строки до и после него. Имя файла плагина указано в самом сообщении или в стектрейсе, то есть в списке строк с отступом, начинающихся с at: там JAR стоит перед двойным слешем, например <Плагин>.jar//. Названия папок вроде plugins/<Плагин>/ тоже показывают, какой плагин затронут. Перед заменой файлов создай резервную копию. Если не получается разобраться, открой тикет и укажи время появления сообщения.