У меня уже несколько человек спросили, как писать плагины для Nukkit-MOT на телефоне.
Потребуется:
- Termux (установите через F-Droid)
- OpenJDK 21 (JDK, а не просто JRE)
- Gradle (рекомендуется) или Maven
- Nukkit-MOT
- IDE
- Базовые знания Java
Установка Nukkit-MOT
-
Обновляем пакеты в Termux:
pkg update && pkg upgrade -
Устанавливаем JDK 21:
pkg install openjdk-21-jdk -
Настраиваем доступ к хранилищу:
termux-setup-storage -
Создаём рабочую директорию:
mkdir -p ~/storage/shared/Nukkit cd ~/storage/shared/Nukkit -
Скачиваем Nukkit-MOT Workflow runs · MemoriesOfTime/Nukkit-MOT · GitHub
-
Переносим Nukkit-MOT в папку Nukkit.
-
Запускаем сервер:
java -jar Nukkit-MOT.jar
Создание плагина
-
Устанавливаем Gradle:
pkg install gradle -
Создаём структуру проекта:
mkdir -p ~/storage/shared/Nukkit/plugins/MyPlugin cd ~/storage/shared/Nukkit/plugins/MyPlugin -
Инициализируем Gradle проект:
gradle init --type java-application --dsl kotlin -
Переносим содержимое из lib, в корень проекта
-
Заменяем содержимое
build.gradle.ktsна:plugins { java id("com.github.johnrengelman.shadow") version "8.1.1" } group = "your.plugin.package" version = "1.0.0" repositories { mavenCentral() maven("https://repo.opencollab.ru/maven-releases/") } dependencies { compileOnly("cn.nukkit:nukkit:1.0-SNAPSHOT") compileOnly("org.projectlombok:lombok:1.18.30") annotationProcessor("org.projectlombok:lombok:1.18.30") } tasks { shadowJar { archiveFileName.set("${project.name}.jar") minimize() } } -
Создаём структуру плагина:
mkdir -p src/main/java/your/plugin/package mkdir -p src/main/resources -
Заполняем plugin.yml в resources:
name: "Test"
api: ["1.0.0"]
version: "1.0"
main: your.plugin.package.Main
author: "Author"
-
Пример основного класса (
src/main/java/your/plugin/package/Main.java):package your.plugin.package; import cn.nukkit.plugin.PluginBase; public class Main extends PluginBase { @Override public void onEnable() { getLogger().info("Plugin enabled!"); } } -
Собираем плагин:
gradle build -
Готовый плагин будет в:
ls build/libs/MyPlugin.jar
Примеры можете смотреть по темам @MEFRREEX