Одна версия игры за раз
mcrs следует за самым новым снапшотом Minecraft и поддерживает только его.1 Сейчас это 26.4-snapshot-7.
Версия хранится в одном файле
Заголовок раздела «Версия хранится в одном файле»Версия записана в единственном месте, в файле assets/minecraft/version.json. Это файл с тем же именем из клиентского JAR, скопированный байт в байт, и крейт ядра встраивает его в себя. Тест падает, если исходник на Rust, TOML или Gradle повторяет одно из значений файла, а инструмент oracle читает версию из того же файла. Плагин мира отказывается стартовать на датапаке, чей version.json отличается от встроенного.
На следующий снапшот проект переводит одна команда
Заголовок раздела «На следующий снапшот проект переводит одна команда»cargo run -p mcrs_minecraft_update -- <version id>Команда заменяет файл версии, дескриптор клиентского JAR, сгенерированные отчеты и определения блоков и предметов, а еще заново снимает фикстуры, о которых рассказывает страница Совпадение с ванилью. Код она не переносит. Все, что новый снапшот меняет в Rust-крейтах, видно по упавшим тестам и напечатанным диффам, и исправляют это уже люди. Поэтому переход - в основном обновление данных и перенос того поведения, которое действительно изменилось. Подробности есть на странице Переход на новый снапшот и в README инструмента.
От чего приходится отказаться
Заголовок раздела «От чего приходится отказаться»Датафиксеров нет, поэтому старые сохранения mcrs не обновляет. В файле чанка или игрока должен стоять целевой DataVersion. Если значения нет или оно другое, вы получите ошибку с обоими номерами, потому что цепочки миграции нет.2 Неизвестное поле в файле, который записала игра, тоже приводит к громкой ошибке, и сырыми байтами mcrs такое поле не сохраняет. Миры, записанные между обновлением и последующими переносами, хранить не стоит.
Клиент должен быть того же снапшота, что и сервер. Ванильный клиент этого снапшота может зайти в офлайн-режиме. Клиент другой версии пока зайти не может.
Крейт протокола содержит пакеты одной версии, старых раскладок пакетов в нем нет, поэтому движок версии не согласовывает.
Если сервер нужен вам для игроков, сначала прочитайте страницу Что такое mcrs и чего от него не ждать. Для продакшена проект рекомендует Paper, Folia, Minestom и Velocity.
Поддержка старых клиентов запланирована
Заголовок раздела «Поддержка старых клиентов запланирована»Большинство игроков сидят на релизах, поэтому лобби или прокси должны принимать их клиенты. На рассмотрении находится предложение поставить транслятор на границе сети.3 Это цепочка шагов, которая конвертирует фреймы между протоколом клиента и целевым протоколом, от целевой версии вниз до 1.21.6, то есть до протокола 771. Движок по-прежнему видел бы только одну версию. Каждый шаг перечислял бы, что он ухудшает, а новый снапшот менял бы только самый новый шаг.
Что работает сегодня в этом снапшоте, перечислено на странице Статус.
Footnotes
Заголовок раздела «Footnotes»Источники и проверка
Проверено: 26.4-snapshot-7, 51d45c26a, 2026-11-09
Переведено с версии 51d45c26a