[Nukkit & PNX] Создание плагина на PowerNukkitX

Автор: @MrForter, @MEFRREEX

Что за ядро PowerNukkitX?

PowerNukkitX - это модифицированная и оптимизированная версия, основанная на PowerNukkit и Nukkit, в которой исправлены ошибки, добавлена ​​поддержка дополнительных функций, таких как совместимость с плагинами LiteLoader (WIP).

Установка PNX на сервер

Запустите из PNX-CLI :

  1. Скачать PNX-CLI-Jar.zip последнюю версию из релиза
  2. Run java -jar PNX-CLI-0.0.1-alpha.jar
    Вы можете нажать здесь , чтобы получить больше информации.

Как писать плагины?

Плагины на PNX пишутся на языке Java.

На windows

Подготовка:
Для этого нужно скачать программу Intellij Idea, Visual Studio Code или другую IDE в которой можно работать с Java:

Создание:
Используем в консоли команду:

mvn archetype:generate -DgroupId=test.plugin -DartifactId=pluginName -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

У нас сгенерировался Java проект. Переходим в файл pom.xml, изменяем информацию внутри группы <dependencies> на:

<dependency>
    <groupId>cn.nukkit</groupId>
    <artifactId>nukkit</artifactId>
    <version>1.0-SNAPSHOT</version>
    <scope>provided</scope>
</dependency>

Переходим в папку src/main/, создаем папку recources и создаем файл plugin.yml.

Пример

Переходим папку src/main/java/ и изменяем название папок и файла на свои, например таким образом:

Пример

Изменяем содержимое файла например на:

package theoni.splitchat; // Пишем сюда свой путь к папке с майн классом

import cn.nukkit.plugin.PluginBase;

public class Main /*Название вашего класса*/ extends PluginBase {

    public void onEnable() {
        this.getLogger().info("Плагин запущен");
    }
}

Все, ваш первый плагин готов, теперь вы можете его скомпилировать и загрузить на сервер

На телефонe

Подготовка:
Для этого нужно скачать программу Jvdroid:

Создание:

Создаем директорию будущего плагина с любым названием (к примеру info) и создаем файлы и директории по шаблону:

Шаблон

Переходим в папку src/main/resources и изменяем plugin.yml:

plugin.yml

Переходим к главному файлу через приложение Jvdroid и создаем Upgrade to project:

Upgrade to project

Указываем только project folder - путь до /src:

Скриншот

И нажимаем CREATE у вас создаёт файл pom.xml и директория target. Заходим в pom.xml и находим группу <dependencies> в него нужно вставить данные о ядре:

<dependency>
    <groupId>cn.nukkit</groupId>
    <artifactId>nukkit</artifactId>
    <version>1.0-SNAPSHOT</version>
    <scope>provided</scope>
</dependency>

И сохраняем, пишем плагин. Оставлю
пример плагина: Info.zip

После того как написали плагин заходим в консоль и вводим:

  • cd <путь до файла pom.xml>
  • mvn clean package
    В target появится ваш плагин в . jar и вставляем этот плагин в plugins

Возможно частые вопросы:

Где найти плагины под ядро?

Все плагины для Nukkit и его форков, таких как PowerNukkitX и т. д. Публикуются на Resources | Cloudburst Nukkit & Minecraft Server Software или https://github.com (тут придется искать по ключевым словам Nukkit, Plugin и тд.)

Совместимы ли между собой плагины от Nukkit и PowerNukkitX?

Да, но это не совсем так. Большинство плагинов действительно работают как на Nukkit, так и на PowerNukkit, PowerNukkitX. Некоторые особо крупные плагины не работают из-за различий в версии Java. Nukkit и PowerNukkit используют Java 8, а вот PowerNukkitX использует уже Java 17.

это уже к разработке плагинов:

Где я могу найти примеры плагинов?

Вы можете найти примеры в example плагинах от разработчиков: GitHub - PowerNukkit/ExamplePlugin-Maven: An example plugin using PowerNukkit, GitHub - PowerNukkitX/ExamplePlugin-Maven: An example plugin using PowerNukkitX или на самом Resources | Cloudburst Nukkit & Minecraft Server Software, большинство плагинов имеют открытый исходный код который можно легко просматривать и редактировать.

Как собирать плагины?

В Intellij Idea сборка плагинов происходит в окне Maven, его установка не требуется в этой программы. В случае использования Visual Studio Code или иной другой программы перейдите в папку с вашим плагином где у вас лежит файл pom.xml, перейдите в терминал и выполните команду mvn clean package. (Если вы используете VSC или другую IDE см. Как установить Maven)

Как установить Maven?

Обратите внимание: если вы используете IDE Intellij Idea - установка Maven вам не требуется. Если вы используете Linux или его эмулятор, используйте apt install maven. Если Windows см. эту статью: Как установить Maven на Windows, тут подробно описано как установить Maven на Windows

Где я могу найти примеры плагинов?

Вы можете найти примеры в example плагинах от разработчиков: GitHub - PowerNukkit/ExamplePlugin-Maven: An example plugin using PowerNukkit, GitHub - PowerNukkitX/ExamplePlugin-Maven: An example plugin using PowerNukkitX или на самом Resources | Cloudburst Nukkit & Minecraft Server Software, большинство плагинов имеют открытый исходный код который можно легко просматривать и редактировать.

Группа <properties> в pom.xml

Если у вас при компиляции возникает ошибка такого рода:

[ERROR] Source option 5 is no longer supported. Use 7 or later.
[ERROR] Target option 5 is no longer supported. Use 7 or later.

Это значит что вы не добавили в pom.xml группу <properties> </properties>. Что там нужно указать? В ней мы указываем версию Java и еще некоторые другие параметры. Пример:

<properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Куда это вставить?
Вставляете в любое пустое место вреди групп, например так:

Помощь по PNX

Если у вас проблемы и вам нужна помощь, то заходите на сервер Discord и мы вам поможем.

5 лайков

небольшая ремарка: перед тем как все это делать, вам нужно 1-2 года опыта в Java и в программировании в целом

да

Ошибок там хватает, поверь

Я бы не стал юзать PNX ни за что.

Я сегодня сел по приколу реализовать механику стрел с эффектами, смотрю код ядра и в очередной раз ахуеваю с него

Пойди и напиши это этим китайцам из наккита, они меня уже заебали

на китайцев из pnx не обращай внимания, там отбитые

обычный наккит мейнтейнят не китайцы

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

при условии, что человек уже научился мыслить обьектно, это занимает больше всего времени

1 лайк

зазубрить ооп

именно это главный компонент

это я один рандомный файлик чекнул
я боюсь представить что там дальше

так кодил я наверное только в 2017ом

Это чисто GenisysPro Java

1 лайк

больше умиляет дебаг с выводом в терминал, когда ява программа дебажится одной кнопкой из IDEA

без лишних телодвижений

делать форк пнх хз

проще не юзать его

я реализую задуманную идею, но почти возле каждой функции буду оставлять “PNX говноеды”
Возможно, дропну фри этот плагин сюда

Все лучше чем юзать альфа версию pmmp 1.1.x

1 лайк