Руководства
ВерсииGiveItemLoot

Java 1.20.4 NBT против компонентов элемента 1.20.5+

8 мин чтения

Minecraft Java 1.20.5 перенес многие функции предметов из устаревшего NBT в компоненты предметов. Это изменение влияет на команды предоставления, замену предметов, награды за добычу, пользовательские имена, lore, enchantments, пользовательские данные и многие рабочие процессы пакетов ресурсов. NBTForge сохраняет селектор версии видимым, поскольку это не просто форматирование.

Начните сравнение с устаревшей цели Java 1.20.4, чтобы предположения старого элемента NBT оставались видимыми.
Переключите тот же элемент вознаграждения на современную цель Java и сравните синтаксис сгенерированного компонента.
Используйте рабочий процесс добычи и именование Project, чтобы разделить устаревшие и современные записи наград.

Результат

Четкое правило принятия решения о том, когда использовать устаревший элемент NBT, а когда использовать современные компоненты элемента.

Открыть связанный модульGive, Item, LootВыбор правильного синтаксиса элемента Java

Рекомендуемый путь

  1. Выберите точную версию Java перед редактированием стека элементов.
  2. Создайте элемент один раз, затем переключайтесь между 1.20.4 и 1.20.5+ только для намеренного сравнения результатов.
  3. Считайте пользовательское имя, lore, enchantments, небьющиеся данные, редкость, блеск и пользовательские данные как поля, чувствительные к версии.
  4. Используйте записи Project, чтобы хранить устаревшую и современную версии рядом при поддержке нескольких миров.
  5. Документируйте целевую версию рядом с командами, которыми вы делитесь с другими авторами.

Когда устаревший элемент NBT по-прежнему является подходящей целью

Используйте устаревший элемент NBT, если команду необходимо запустить в Java 1.20.4 или более ранней версии. В этом мировом семействе многие детали элементов находятся внутри старой структуры NBT, а Output компонента не является целевым синтаксисом.

Устаревший Output также полезен при переносе старой библиотеки команд. Import старой командой, сравните проанализированные поля, а затем выполните повторную генерацию только после выбора новой целевой версии.

Когда компоненты предмета — правильная цель

Используйте компонентный Output для Java 1.20.5 и более поздних версий. Синтаксис компонентов — это современный формат для многих функций элементов, включая имена, lore, enchantments, пользовательские данные и поведение отображения.

Если вы создаете новый контент карты для текущих версий Java, начните с вывода компонента и создавайте устаревший синтаксис только тогда, когда вы знаете, что он нужен старому серверу.

  • Современные команды элемента Java должны генерироваться с выбранной текущей версией.
  • Рабочие процессы добычи и вознаграждения должны использовать ту же версию, что и пакет данных мира.
  • Не смешивайте устаревшую команду Give с модификатором элемента эпохи компонентов, если только вы не намеренно выполняете миграцию.

Как безопасно сравнивать

Переключение версий может изменить имена полей, вложенность, а иногда и то, какие поля могут быть представлены. Используйте панель выходных различий после переключения версии вместо того, чтобы просматривать длинную команду на глаз.

Для общих шаблонов сохраните версию в заголовке статьи, имени пресеты или имени записи Project. Команда под названием «наградной меч» неоднозначна; команду под названием «reward Sword Java 1.21» поддерживать гораздо проще.

Отправьте скопированный артефакт

Используйте это руководство для создания артефакта, который фактически будет запускать игрок или создатель карт: скопированная команда, заказанный пакет Project или ресурс пакета данных. Окончательная проверка должна проводиться на скопированных выходных данных, а не только на редактируемом состоянии компоновщика.

Если рабочий процесс чувствителен к версии, отметьте целевую версию рядом с командой. Когда он использует селекторы, scoreboard, панели боссов, теги, таблицы добычи или порядок проекта, протестируйте эти зависимости в чистом мире, прежде чем публиковать настройку.

  • Скопируйте от Output для одной команды и от Project для заказанных пакетов.
  • Храните Java, Bedrock и варианты моментальных снимков отдельно.
  • Сначала протестируйте деструктивные селекторы с безвредным выводом.
  • Обновите соответствующие настройки, когда руководство станет каноническим рабочим процессом.

Похожие руководства и пресеты

FAQ

Всегда ли Output Java 1.20.5 лучше?

Это лучше только для миров, в которых используется 1.20.5 или более поздние версии. Старым мирам Java требуется устаревший синтаксис, поэтому правильный Output зависит от целевого мира.

Могу ли я сохранить оба формата?

Да. Сохраните отдельные записи Project для устаревшей и современной версии, четко маркируйте их и обновляйте обе при изменении конструкции базового элемента.

Когда это руководство должно стать пакетом Project?

Используйте Project, если для рабочего процесса требуется более одной команды, установлен порядок настройки и очистки или его необходимо снова отредактировать после тестирования. Одноразовые команды могут оставаться в Output.