
Monument Data Fix
Monument Data Fix - библиотека для Майнкрафт, которая позволяет модам регистрировать кастомные Data Fixer'ы. Нужна как зависимость при обновлении модифицированных миров, чтобы старые блоки и данные не пропали.
Monument Data Fix - это библиотека для Minecraft, которая решает одну очень болезненную проблему: обновление модифицированных миров между версиями игры. Если вы когда-нибудь пытались перенести сохранение с кучей модов на новую версию и получали пустой инвентарь, исчезнувшие блоки или краш при загрузке - вот тут-то и нужен этот проект. Зайдёт тем, кто годами тащит свой любимый survival-мир через все обновления и не хочет с ним прощаться из-за пары изменившихся ID.
Что такое Data Fixer вообще
Как писала сама Mojang в readme, DataFixerUpper - это "набор утилит для инкрементального построения, слияния и оптимизации преобразований данных". Простыми словами, это внутренний механизм игры, который переводит старые форматы сохранений в новые. Каждый раз, когда вы загружаете старый мир в новой версии Майнкрафт, игра прогоняет данные через цепочку таких фиксеров. Проблема в том, что ванильные фиксеры знают только про ванильные блоки и сущности. Как только появляется мод, добавивший свой ID блока, при обновлении игра просто не понимает, что с этим делать, и выкидывает его из мира.
Что делает Monument Data Fix
Monument Data Fix даёт авторам модов набор API, чтобы те могли регистрировать собственные, кастомные Data Fixer'ы. Игра сама по себе такое не умеет - она конвертирует только то, что знает. Эта библиотека как бы расширяет стандартный механизм Mojang, добавляя туда поддержку модовых данных.
Из коробки, по умолчанию, мод содержит готовые фиксеры для двух проектов:
- Sweet Potato Reborn - позволяет поднять сохранение с модом Sweet Potato из Minecraft 1.16-1.19 до версии 1.21+ уже с Sweet Potato Reborn
- Xdi8Aho Mod - апгрейд мира с Xdi8Aho на 1.18.2 до 1.21.4+
Важный нюанс с Xdi8Aho
Тут есть один момент, на котором легко споткнуться. В Minecraft 1.18.2 мод Xdi8Aho был сборным - он включал в себя и Sweet Potato Mod, и собственный контент. Позже проект разделили на два отдельных мода, и теперь Xdi8Aho содержит только свой контент.
Поэтому при переходе на 1.21.4+ придётся ставить одновременно и Xdi8Aho Mod, и Sweet Potato Reborn. Иначе игра просто удалит старые блоки, которые не сможет распознать - и вы потеряете часть базы. Согласитесь, обидно потерять полдома из-за того, что не поставили вовремя нужную зависимость.
По факту, если ставите апгрейд через Monument Data Fix - проверьте, что все моды-источники стоят на своих местах. Тогда мир переживёт обновление без потерь.
Нужен ли мод обычному игроку
Тут всё просто. Если вы не обновляете модифицированное сохранение - мод не нужен. Он занимает место, но никак себя не проявляет в игре, у него нет ни блоков, ни предметов, ни интерфейса. Это чисто техническая библиотека, работающая в фоне.
Другое дело - если вы собираетесь перенести свой старый модовый мир на новую версию, а разработчик конкретного мода пишет в описании "для обновления сохранений требуется Monument Data Fix". Вот тогда устанавливайте - без него конвертация данных просто не пройдёт.
Для разработчиков модов
Если вы автор мода и хотите, чтобы ваши сохранения умели переезжать между версиями Minecraft, используйте Monument Data Fix как зависимость. В описании своего проекта укажите, что "при обновлении сохранений нужен Monument Data Fix" - так игроки не будут втыкать, почему ломается их база.
Чтобы добавить свои кастомные фиксеры, вызывайте:
top.qwerty770.monument.datafix.api.DataFixerRegistry$addDataFix(String name, CustomDataFixer dataFixer)- либо
top.qwerty770.monument.datafix.api.DataFixerRegistry$addDataFix(String name, Function<DataFixerBuilder, DataFix> dataFixer)
И делайте это до вызова net.minecraft.util.datafix.DataFixers$addFixers. Если запутаетесь с реестром - смотрите сам Monument Data Fix как живой пример: он же как-то реализует фиксеры для двух модов, значит можно подсмотреть реализацию. Проект распространяется под лицензией MIT, то есть код можно спокойно изучать и форкать под свои нужды.
Совместимость и установка
Библиотека работает на Fabric и NeoForge для Майнкрафт 1.21-1.21.5 (Java Edition). Поддерживается как одиночная игра, так и сервер. Классический сценарий установки - закинуть .jar в папку mods вместе с остальными модами. Дополнительные API для работы библиотеки не требуются.
Совет: перед обновлением мира обязательно сделайте бэкап папки saves. Даже с данными фиксерами случаются краши на нестандартных сборках, а откатить потерянное без копии будет уже нечем. И проверьте, что версии Sweet Potato Reborn и Xdi8Aho Mod соответствуют целевой версии Minecraft - иначе игра может отбросить часть данных.
Скачать Monument Data Fix
Итог такой: Monument Data Fix - это не тот мод, который вы ставите ради контента. Это незаметный помощник, который выручает в самый ответственный момент - когда вы решаете перенести свой любимый мир на свежую версию и не хотите терять ни одного блока. Моддеры оценят встроенное API, а обычные игроки - что мир остаётся целым после обновления.
Как поиграть с друзьями с модом Monument Data Fix?
Мод Monument Data Fix куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Monument Data Fix будет готов за пару минут - BungeeHost сделает всё за вас.
