Запуск и отладка плагина
Прежде чем ставить точки останова, убедитесь, что плагин вообще может загрузиться на локальном сервере.
Шаг 3 из 4: поместите jar на сервер, убедитесь, что он загружается, и затем подключите отладчик.
Предыдущий шаг: Основы плагинов
Следующий шаг: Публикация первого плагина
1. Подготовка локальной папки сервера
Создайте чистую папку для тестового сервера и поместите в неё jar сервера Nukkit-MOT.
Запустите сервер один раз:
java -jar Nukkit-MOT-SNAPSHOT.jar
После первого запуска сервер обычно создаёт папки вроде plugins/, worlds/ и файлы конфигурации. После этого остановите сервер.
2. Помещение плагина в plugins/
Скопируйте jar, собранный на предыдущей странице, в папку plugins/ сервера:
target/hello-world-plugin-1.0.0.jar -> <your-server>/plugins/
Если вы переименовали артефакт сборки, скопируйте именно этот файл.
3. Запуск сервера и проверка загрузки плагина
Снова запустите сервер:
java -jar Nukkit-MOT-SNAPSHOT.jar
Следует искать два вида подтверждения:
- Строка лога сервера, в которой упоминается
HelloWorldPlugin v1.0.0 - Строка лога из вашего метода
onEnable(), напримерHello from my first Nukkit-MOT plugin!
Когда сервер запущен, используйте одну из этих команд:
plugins
или:
pl
Если плагин загружается корректно, он должен появиться в списке плагинов. Во многих консолях имя успешно загрузившегося плагина отображается зелёным.
4. Что проверить в первую очередь, если загрузка не удалась
Большинство неудач с первым плагином вызвано одной из этих проблем:
- В корне jar отсутствует
plugin.yml - Поле
mainне совпадает с реальным именем пакета и класса - jar скопирован в корень сервера вместо
plugins/ - Отсутствует обязательная зависимость из
depend - Вы изменили код, но забыли пересобрать jar
Если имя плагина отображается красным или сервер выводит трассировку стека, начните с проверки этих пунктов, прежде чем отлаживать Java-код.
5. Необязательно: копирование jar в plugins/ после каждой сборки
Когда плагин уже может загрузиться вручную, можно ускорить рабочий процесс, записывая собранный jar прямо в папку plugins/ сервера.
Добавьте свойство в pom.xml:
<properties>
<maven.compiler.release>17</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<nukkitPluginsPath>D:\BedrockServer\MOT\plugins</nukkitPluginsPath>
</properties>
Затем добавьте секцию сборки:
<build>
<defaultGoal>clean package</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<outputDirectory>${nukkitPluginsPath}</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<filesets>
<fileset>
<directory>${nukkitPluginsPath}</directory>
<includes>
<include>${artifactId}*.jar</include>
</includes>
</fileset>
</filesets>
</configuration>
<executions>
<execution>
<phase>pre-clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Теперь mvn clean package записывает самый свежий jar прямо в папку плагинов вашего сервера.
6. Подключение отладчика IntelliJ IDEA
После того как плагин загружается нормально, настройте IntelliJ IDEA для отладки процесса сервера.
- Откройте ваш проект в IntelliJ IDEA.
- Откройте окно
Run/Debug Configurationsна верхней панели. - Выберите шаблон
JAR Application.
- Используйте примерно такие настройки:
| Поле | Описание |
|---|---|
| Name | Nukkit-MOT |
| JAR Path | Полный путь к Nukkit-MOT-SNAPSHOT.jar |
| Working Directory | Ваша локальная папка сервера Nukkit-MOT |
| JRE | Среда выполнения Java 17 |
Наконец, нажмите OK.
Поставьте точку останова в onEnable() и запустите отладку с помощью Shift + F9.
Точки останова соответствуют только тому коду, который вы собрали. Если сервер всё ещё выполняет старый jar, результаты срабатывания точек останова будут запутанными.
Прежде чем продолжить
- Ручная загрузка — ваш первый шаг проверки
- Отладка с точками останова — второй шаг, а не первый
- Когда плагин загружается и вы можете воспроизводить изменения локально, переходите к разделу Публикация первого плагина