Java 1.20.4 NBT против компонентов элемента 1.20.5+
8 мин чтения
Minecraft Java 1.20.5 перенес многие функции предметов из устаревшего NBT в компоненты предметов. Это изменение влияет на команды предоставления, замену предметов, награды за добычу, пользовательские имена, lore, enchantments, пользовательские данные и многие рабочие процессы пакетов ресурсов. NBTForge сохраняет селектор версии видимым, поскольку это не просто форматирование.
Результат
Четкое правило принятия решения о том, когда использовать устаревший элемент NBT, а когда использовать современные компоненты элемента.
Рекомендуемый путь
- Выберите точную версию Java перед редактированием стека элементов.
- Создайте элемент один раз, затем переключайтесь между 1.20.4 и 1.20.5+ только для намеренного сравнения результатов.
- Считайте пользовательское имя, lore, enchantments, небьющиеся данные, редкость, блеск и пользовательские данные как поля, чувствительные к версии.
- Используйте записи Project, чтобы хранить устаревшую и современную версии рядом при поддержке нескольких миров.
- Документируйте целевую версию рядом с командами, которыми вы делитесь с другими авторами.
Когда устаревший элемент 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.