Что такое карты в Minecraft? Объяснение названий

Объяснение работы с картами Minecraft: как MCP, Yarn и Mojmap преобразуют обфусцированные имена классов в читаемый код, чтобы моды и клиенты могли интегрироваться с игрой.

Mappingsby trqUpdated June 4, 2026
Key takeaways
  • Мэппинги — это таблицы соответствия, которые переводят обфусцированный код Minecraft в читаемые имена.
  • Mojang перепутывает имена классов, полей и методов, и они меняются в каждой версии.
  • Три, о которых вам предстоит услышать, — это MCP, Yarn и мэппинги Mojang (Mojmap).
  • Мэппинг применяется во время компиляции, а не во время выполнения, поэтому он никогда не попадает к игрокам.

Карты отображений в Minecraft — это таблицы имен, которые переводят обфусцированный код игры в читаемые имена. Mojang поставляется с Minecraft с перепутанными именами классов и полей, такими как a.a.a, поэтому разработчики модов и клиенты применяют набор отображений, например, MCP, Yarn или официальные отображения Mojang, чтобы получить имена, которые они могут читать и в которые могут подключаться.

Где используется Opal

Opal — это мод для Fabric, поэтому он использует современные мэппинги в своей основе и предоставляет чистый API для скриптов GraalVM JavaScript. Вы пишете скрипты, используя понятные имена, не касаясь мэппингов самостоятельно. Ознакомьтесь с руководством по скриптам.

Почему существуют маппинги

Mojang обфусцирует Minecraft перед выпуском. Распространяемый jar переименовывает классы, методы и поля в короткие, бессмысленные строки, чтобы уменьшить размер файла и затруднить чтение кода. Именно эта перестановка и является причиной того, что нельзя просто открыть игру и начать её редактировать.

Маппинг — это словарь, который отменяет это. Он сопоставляет каждое обфусцированное имя с читаемым человеком, так что поле с именем field_70181_x становится motionY. При примененном маппинге разработчик видит код, выглядящий нормально, и может писать моды для него.

Здесь есть одно важное условие. Обфусцированные имена меняются в каждой версии Minecraft, поэтому одно и то же поле может быть a в одной версии и bk в следующей. Маппинги поглощают эти изменения, и именно поэтому они являются основой каждой цепочки инструментов для моддинга.

Три, о которых вы услышите

MCP (Mod Coder Pack) — это сообщественный маппинг, который сделал моддинг версий до 1.14 возможным. Он использовал двухслойную схему: проект Searge создавал стабильные, но некрасивые промежуточные имена, такие как field_70181_x, а MCP оборачивал их в понятные имена, такие как motionY. Большинство старых автономных клиентов 1.8.9 компилируются с исходным кодом, отображенным с помощью маппинга MCP, и используют MCP и Searge для рефлексии.

Ярн — это открытая карта, поддерживаемая FabricMC для экосистемы Fabric. Она поддерживается сообществом, имеет свободную лицензию и быстро обновляется при выходе новой версии Minecraft, что является одной из причин, по которой моды для Fabric быстро получают новые версии.

Карты Mojang, часто называемые Mojmap, — это собственные карты первой партии от Mojang, выпускаемые вместе с каждым официальным релизом начиная с версии 1.14.4. Поскольку они поступают непосредственно от Mojang, названия соответствуют тому, как разработчики на самом деле называют вещи. Они фактически заменили MCP и Searge в качестве стандарта для любых новых клиентов, нацеленных на 1.21 или более позднюю версию.

Как они соотносятся друг с другом

MCPЯрнКарты Mojang
ПоддерживаетсяСообществом (Searge + MCP)FabricMCMojang
ЭпохаДо 1.14 (1.7-1.12)1.14+1.14.4+
ИсточникПолучено сообществомПолучено сообществомОфициальный
Используется сУстаревшие клиенты, старое моддингFabricFabric, Forge
СтатусВыведены из эксплуатации картами MojangАктивныйАктивный по умолчанию

Как карты вписываются в цепочку инструментов моддинга

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

Разные загрузчики обрабатывают это по-разному. Fabric собирается с использованием Yarn или базы, основанной на картах Mojang, в зависимости от проекта. Forge исторически разделял эту задачу, используя одну карту для исходного кода, который вы читаете, и другую — для того, что запускается. Лицензия на карты Mojang достаточно разрешительна для использования во время сборки, поэтому современные цепочки инструментов полагаются на них.

Часто задаваемые вопросы