MonitoringMinecraft MonitoringMinecraft

Как сделать плагин в Майнкрафте — первая команда на Paper

Чтобы сделать плагин в Майнкрафте, создайте Java-проект для Paper, добавьте команду и соберите JAR. Пошаговый пример, тестовый сервер и решения ошибок.

Обновлено 15 октября 2026 г.

Как сделать плагин в Майнкрафте

Чтобы сделать плагин в Майнкрафте, создайте Java-проект под серверное ядро, напишите обработчик команды и соберите файл .jar, который сервер загрузит из папки plugins. Пример для Java Edition 26.3 добавляет на Paper команду /hello: она отвечает отправителю приветствием.

Понадобится именно сервер Paper: обычный сервер Mojang этот плагин не загрузит. Разницу между серверными дополнениями и их установку разбирает гайд по плагинам. С помощью других плагинов можно создать НПС или сесть на стул и лечь на землю.

Что установить перед созданием плагина

Подготовьте JDK — комплект Java с компилятором, IntelliJ IDEA и отдельную папку для тестового сервера. Требования к проекту и создание шаблона описаны в документации Paper.

Что нужноНастройка для примера
Игра и тестовый серверJava Edition 26.3 и Paper того же выпуска
JDK для проекта и сервераJava 25
Среда разработкиIntelliJ IDEA с расширением Minecraft Development
СборкаGradle через Wrapper проекта

Откройте терминал и выполните java -version, затем javac -version. Обе команды должны находить установленную Java. Если java работает, а javac не найден, проверьте установку JDK и переменную PATH.

Как подготовить проект

  1. В IntelliJ IDEA откройте File → Settings → Plugins → Marketplace. Найдите Minecraft Development, установите расширение и перезапустите IDE.
  2. Выберите File → New → Project → Minecraft. Укажите параметры из таблицы ниже.
  3. Создайте проект и дождитесь синхронизации Gradle. При первом открытии ему нужен интернет для загрузки зависимостей.
  4. В настройках проекта выберите установленный JDK. В Settings → Build, Execution, Deployment → Build Tools → Gradle проверьте, что Gradle JVM использует тот же JDK.
Поле мастераЗначение
Name и Plugin NameHelloPlugin
Platform Type / PlatformPlugin / Paper
Minecraft Version26.3
Язык / Build SystemJava / Gradle
Group ID / Artifact IDme.student / hello
Main Classme.student.hello.HelloPlugin
Version1.0.0 — версия вашего плагина
JDK25
Paper ManifestВыключено: используем обычный plugin.yml

Для запуска Gradle на Java 25 нужен Gradle начиная с 9.1.0 — это указано в таблице совместимости Gradle. Если шаблон создал более старый Wrapper, откройте gradle/wrapper/gradle-wrapper.properties и в значении distributionUrl замените только имя архива на gradle-9.1.0-bin.zip, сохранив остальную строку. Затем повторите синхронизацию.

Откройте созданный build.gradle или build.gradle.kts. В блоке dependencies должна быть зависимость Paper API:

compileOnly("io.papermc.paper:paper-api:26.3.build.+")

Если мастер указал другую версию API, замените соответствующую строку. Репозитории и остальные настройки шаблона сохраните; целевая версия Java в настройках сборки должна соответствовать выбранному JDK. Область compileOnly означает, что API нужен для компиляции, а при запуске его предоставляет Paper: включать серверное API внутрь вашего JAR не нужно.

Как добавить команду /hello

Создайте два Java-файла в пакете me.student.hello. Если мастер уже создал HelloPlugin.java, замените его содержимое целиком. Сохраняйте исходники в UTF-8.

  1. Откройте src/main/java/me/student/hello/HelloPlugin.java и вставьте код главного класса.
  2. В той же папке создайте Java-класс HelloCommand и вставьте обработчик команды из следующего примера.

Файл HelloPlugin.java:

package me.student.hello;

import org.bukkit.plugin.java.JavaPlugin;

public final class HelloPlugin extends JavaPlugin {
@Override
public void onEnable() {
registerCommand("hello", new HelloCommand());
getLogger().info("HelloPlugin включён");
}
}

Файл HelloCommand.java:

package me.student.hello;

import io.papermc.paper.command.brigadier.BasicCommand;
import io.papermc.paper.command.brigadier.CommandSourceStack;

public final class HelloCommand implements BasicCommand {
@Override
public void execute(CommandSourceStack source, String[] args) {
source.getSender().sendPlainMessage(
"Привет, " + source.getSender().getName() + ". Плагин работает."
);
}
}

onEnable() вызывается при включении плагина. Внутри него registerCommand() связывает имя hello с обработчиком; слеш в имени не нужен. Когда игрок или консоль выполняет команду, метод execute() отправляет ответ её отправителю.

Здесь используется рекомендованный Paper интерфейс BasicCommand. Дописывать команду в раздел commands файла plugin.yml для этого способа регистрации не требуется. Проверку прав мы не задавали, поэтому команда доступна всем игрокам.

Что написать в plugin.yml

Откройте src/main/resources/plugin.yml и полностью замените содержимое следующим:

name: HelloPlugin
version: '1.0.0'
main: me.student.hello.HelloPlugin
api-version: '26.3'

Поле main должно точно совпадать с пакетом и именем главного класса, включая регистр букв. version обозначает версию вашего плагина, а api-version — версию API сервера. Сервер старее указанного API откажется загружать плагин; подробности есть в описании plugin.yml.

Проверьте название файла: нужен именно plugin.yml, без скрытого окончания .txt. Gradle положит его в корень готового JAR вместе со скомпилированными классами.

Как собрать плагин в JAR

  1. Откройте терминал IntelliJ IDEA в корневой папке проекта — там находятся файлы gradlew и gradlew.bat.
  2. В Windows PowerShell выполните .\gradlew.bat clean build. В Linux и macOS выполните ./gradlew clean build; если нет права запуска, используйте bash gradlew clean build.
  3. Дождитесь сообщения BUILD SUCCESSFUL. Если сборка завершилась ошибкой, сначала исправьте её: старый JAR не содержит последних изменений.
  4. Откройте папку build/libs. Нужен основной файл .jar, без окончания -sources.jar или -javadoc.jar. Точное имя зависит от настроек проекта.

Можно собрать проект через окно Gradle в IDE, запустив задачу build. Копировать на сервер папку проекта, исходники .java или отдельные файлы .class не нужно.

Как проверить плагин на тестовом сервере

Создайте отдельную папку test-server и используйте новый мир. Если сервер ещё не подготовлен, поможет инструкция по созданию сервера.

  1. Скачайте Paper для Java Edition 26.3 через официальный раздел загрузок проекта. Поместите серверный JAR в test-server и переименуйте в paper.jar.
  2. Откройте терминал в этой папке и выполните java -Xmx2G -jar paper.jar --nogui. Параметр -Xmx2G ограничивает максимальную память Java-процесса; для работы компьютеру также нужна свободная память сверх этого значения.
  3. После первого запуска откройте созданный eula.txt. Прочитайте условия и, если согласны, измените eula=false на eula=true. Повторите запуск.
  4. Когда сервер закончит запуск, введите в его консоли stop и дождитесь завершения процесса.
  5. Скопируйте собранный плагин в test-server/plugins. Если папки нет, создайте её. Запустите сервер снова той же командой.
  6. Проверьте, что в консоли появилось HelloPlugin включён. Выполните plugins: имя HelloPlugin должно быть в списке включённых плагинов.
  7. Запустите Java Edition 26.3, откройте «Сетевая игра» и подключитесь к localhost. В чате выполните /hello: появится приветствие с вашим ником.
  8. Проверьте консоль сервера: введите hello без слеша. Ответ должен появиться в консоли.

Копирование JAR, перезапуск и проверка через plugins соответствуют инструкции Paper по установке плагинов. В консоли серверные команды вводят без начального слеша; другие полезные действия собраны в гайде по серверным командам.

После изменения кода снова выполните сборку, остановите сервер командой stop, замените старый JAR и запустите сервер. Оставляйте в папке только одну копию своего плагина. Для проверки обновлений используйте полный перезапуск вместо /reload.

Почему плагин не работает

Начните с консоли сервера и файла logs/latest.log. Найдите первое сообщение об ошибке вашего плагина и строки Caused by: они помогают понять причину.

СимптомЧто проверить
IDE не находит JavaPlugin или BasicCommandДождитесь синхронизации Gradle, проверьте зависимость Paper API и её версию. Наличие JDK само по себе не добавляет серверное API.
Сборка сообщает invalid source releaseСборку выполняет неподходящий JDK. Сверьте Gradle JVM, настройки Java в файле сборки и установленный JDK.
Сервер пишет UnsupportedClassVersionErrorJava, запускающая сервер, старее той, под которую собран класс. Выполните java -version именно в терминале запуска сервера.
Не найден plugin.yml или главный классПроверьте путь src/main/resources/plugin.yml и значение main. Готовый JAR можно открыть архиватором: внутри должны быть метаданные и ваши классы.
Не поддерживается api-versionСверьте версию Paper с проектом. Простая замена числа в метаданных не делает код совместимым со старым API.
Плагин включён, но /hello не выполняет ваш кодПроверьте строку registerCommand(), результат последней сборки и скопированный JAR. На чистом тестовом сервере исключите конфликт имён команд.
После правки сообщение осталось прежнимУбедитесь, что сборка успешна, новый JAR скопирован после остановки сервера, старая копия удалена и сервер полностью перезапущен.

Подойдёт ли пример для старых версий и Bedrock

Этот пример использует API Paper и рассчитан на Java Edition 26.3. Для Spigot и старых выпусков нужен отдельный вариант проекта: изменение одного поля api-version не заменяет перенос кода и выбор подходящей версии Java.

Версия сервераЧто учесть
1.12.2Используйте API этой ветки и старый механизм команд через onCommand(). Поле api-version в метаданных не требуется.
1.16.5BasicCommand из примера недоступен. Для обычного Bukkit-плагина используют onCommand(), раздел commands и api-version: '1.16'.
1.20.1Потребуется старый обработчик команд и API этой версии. В метаданных указывают api-version: '1.20'.
1.21.xПроверяйте конкретный выпуск Paper. Документация использованного способа регистрации ориентируется на 1.21.1 и новее; текущий JAR нельзя считать совместимым без отдельной сборки и проверки.

В Bedrock Edition этот Java-плагин не запускается. Для стандартной Bedrock используют дополнения и Script API с JavaScript или TypeScript; это другой формат проекта.

Сервера Майнкрафт

Играть интереснее на сервере — выбирайте в рейтинге серверов Майнкрафт и заходите прямо сейчас.

SkyBars
SkyBars Java + BE
693 онлайн
1.8 — 26.3 версия
🎮 ВЫЖИВАНИЕ ⚔️ АНАРХИЯ 🚗 ГТА РП 🎤 ГОЛОСОВОЙ ЧАТ 🎁 БЕСПЛАТНЫЙ ДОНАТ 🌟 СМП 💻 ПК+ТЕЛЕФОН
MineLandy
MineLandy Java + BE
42 онлайн
1.12.2 — 26.1.2 версия
Ванила и анархия без приватов — полная свобода действий и честное выживание
DESTINYWORLD - ANARCHY
12 онлайн
1.16.5 — 1.21.11 версия
Гриф-анархия с Игрой в кальмара, кланами и ключами за онлайн. Магазин и киты в стиле FT, Джамшут
Fork
Fork Java
0 онлайн
26.3 версия
Начни с корней. Построй свой мир среди единомышленников.
Гайды — все статьи

Вопросы и ответы

Можно ли сделать плагин в Майнкрафте без знания Java?
Простой пример можно собрать по готовому коду и менять в нём сообщения. Чтобы добавлять собственные возможности и исправлять ошибки, понадобятся основы Java: переменные, условия, методы и классы.
Нужно ли игрокам устанавливать мой плагин?
Для команды из примера достаточно обычного клиента подходящей версии: JAR устанавливает только владелец сервера. Дополнительные требования появляются, если вы отдельно используете клиентские моды или ресурспак.
Как добавить вторую команду в свой плагин?
Создайте ещё один класс, реализующий BasicCommand, и зарегистрируйте его отдельным вызовом registerCommand() внутри onEnable(). Выберите другое имя команды, чтобы обработчики не заменяли друг друга.
Как менять сообщение плагина без пересборки JAR?
Вынесите текст в config.yml и читайте его через API конфигурации плагина. Затем можно менять файл настроек и перезапускать сервер; для обновления без перезапуска потребуется отдельно написать перечитывание конфигурации.
MineLauncher
Лаунчер Майнкрафт без лицензии — все версии
Бесплатный лаунчер для ПК и Андроид — все версии 26.3, 26.2, 1.21.11, 26.1.2. Fabric, NeoForge, Quilt, шейдеры, моды и скины в один клик.
Без лицензии Fabric, NeoForge, Quilt Моды, шейдеры, скины Все версии Майнкрафта ПК и Андроид Для слабых ПК Сервера в лаунчере
Скачать бесплатно
Windows и Андроид · Бесплатно · Без лицензии
Наш чат