Перейти к содержимому

Это не Paper API

Меняется. Следите: #283, #281, #546, #321, #437

Плагин, написанный для Paper, на mcrs не заработает. Эта страница для тех, кто пришел из Paper или Bukkit. Она рассказывает, чем здесь заменяется работа с API плагинов, что уже работает и чего пока нет.

В mcrs нет ни Bukkit-подобного API, ни крейта-фасада, и это решение проекта.1 Загрузчика плагинов сегодня тоже нет, поэтому сервер не умеет загружать jar, wasm-модуль или скрипт, и JVM-код на Java или Kotlin внутри него не запустить. По загрузчику никто не открывал issue и не принимал решения, поэтому слова “никогда” на этой странице нет.

Сегодня вы пишете Bevy-плагин на Rust, добавляете его рядом с плагинами сервера в собственном main и собираете один бинарник. Это ближе к Minestom, где сервер - библиотека, а main пишете вы, чем к Paper, где вы получаете готовый сервер и кладете jar-файлы в plugins/. Направление проекта - mcrs как библиотека, от прокси до полного сервера.2

В таблице то, что ваш код уже может делать, и issue или pull request, который стоит за каждой строкой.

Что нужно Состояние Где
Убрать или заменить часть сервера Сервер - группа плагинов, и ее участников можно отключать Работает#279
Добавить свой код во все измерения или в одно add_dimension_plugin и add_dimension_plugin_to Работает#280
Ванильный геймплей как отключаемые плагины Сделано Работает#282
Перехватить и отменить строку чата PlayerChatEvent, единственное публичное отменяемое событие Работает#636
Зарегистрировать свою команду add_command с типизированным деревом команд Работает#579

Точка входа - src/main.rs. Он создает приложение и добавляет MinecraftServerPlugins, группу плагинов сервера.

У каждой строки ниже есть issue, кроме загрузчика плагинов.

Что нужно Состояние
Публичные отменяемые события входа, выхода, ломания и установки блока, движения Частично#283
Заменить источник чанков (плоский или пустой мир, свой генератор) В работе#281
Создавать и удалять измерения, пока сервер работает В работе#546
Зависеть от опубликованных крейтов (сегодня только git-зависимость) Решения нет#321
Загрузчик плагинов для jar, wasm или скриптов Решения нет issue нет, решения нет
Сохранять мир на диск В работе#78
Привычка из Paper В mcrs
plugin.yml, jar в plugins/ Нет. Ваш код компилируется в бинарник сервера
Статический Bukkit.getServer() Нет, отклонено в Не планируется#437. Система получает данные как параметры
Стабильный API с версиями Нет. Вы собираетесь с публичными крейтами и плагинами, а их версии нестабильны
/reload и горячая перезагрузка кода Нет. Перезагрузка датапаков запланирована в В работе#316
Скриптинг (Lua, JS) Issue нет, решения нет

Полная таблица соответствий есть на странице Paper и Minestom в терминах mcrs, а состояние каждой области показано на странице Статус.

Дальше: От объектов к данным разбирает три привычки, от которых придется отвыкнуть до первого кода, а за ней идет Rust для Java-разработчика.

  1. Не планируется#437 Решение о том, что нет ни фасада, ни крейта API. ↩

  2. В работе#180 Направление: mcrs как библиотека, от прокси до полного сервера. ↩

  3. Не планируется#412 Решение поддерживать одну версию в каждый момент, без обратной совместимости. ↩

Источники и проверка

Проверено: 26.4-snapshot-7, 51d45c26a, 2026-11-09

Переведено с версии 51d45c26a

Следить: #283, #281, #546, #321, #437