Это не Paper API
Плагин, написанный для 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, которые не переносятся
Заголовок раздела «Привычки из Paper, которые не переносятся»| Привычка из Paper | В mcrs |
|---|---|
plugin.yml, jar в plugins/ |
Нет. Ваш код компилируется в бинарник сервера |
Статический Bukkit.getServer() |
Нет, отклонено в Не планируется#437. Система получает данные как параметры |
| Стабильный API с версиями | Нет. Вы собираетесь с публичными крейтами и плагинами, а их версии нестабильны |
/reload и горячая перезагрузка кода |
Нет. Перезагрузка датапаков запланирована в В работе#316 |
| Скриптинг (Lua, JS) | Issue нет, решения нет |
Полная таблица соответствий есть на странице Paper и Minestom в терминах mcrs, а состояние каждой области показано на странице Статус.
Дальше: От объектов к данным разбирает три привычки, от которых придется отвыкнуть до первого кода, а за ней идет Rust для Java-разработчика.
Footnotes
Заголовок раздела «Footnotes»Источники и проверка
Проверено: 26.4-snapshot-7, 51d45c26a, 2026-11-09
Переведено с версии 51d45c26a