23w31a (Java Edition)

Материал из русскоязычной Minecraft Wiki
Перейти к навигации Перейти к поиску
23w31a
Издание Java Edition
Дата выпуска 2 августа 2023 г.
Тип Предварительная версия
Предварительная версия для 1.20.2
Версия протокола  dec: 1073741968
 hex: 40000090
Версия данных 3567
Формат набора ресурсов 16
Формат набора данных 16
Мин. версия Java Java SE 17

23w31a — это первая предварительная сборка для Java Edition 1.20.2, выпущенная 2 августа 2023 года, в которой добавлен экспериментальный набор данных «Балансировка торговли с крестьянами», команда /random и исправлены ошибки.

Дополнения

[править | править код]

Формат команды

[править | править код]
/random
  • Новая команда для рандомизации значений и управления случайными последовательностями.
    • Синтаксисы:
      • /random (value|roll) <range> [<sequence>]: рисует случайное значение
      • /random reset (*|<sequence>) [<seed>] [<includeWorldSeed>] [<includeSequenceId>]: управляет случайными последовательностями
    • Аргументы:
      • range: диапазон значений для рандомизации, включительно. Например, 1..6 — это обычный бросок D6.
      • sequence: имя случайной последовательности для выборки или сброса.
        • В /random reset, * относится ко всем случайным последовательностям.
      • seed: начальное значение которое будет использоваться для случайной последовательности после сброса.
      • includeWorldSeed: логическое значение, указывающее, включать ли начальное значение мира при заполнении последовательности. По умолчанию — true.
        • Когда false, это означает, что все последовательности будут иметь одно и то же значение, независимо от того, в каком мире выполняется команда.
      • includeSequenceId: логическое значение, указывающее, включать ли идентификатор последовательности при заполнении последовательности. По умолчанию — true.
        • Когда false, это означает, что все последовательности будут иметь одно и то же значение, независимо от того, какое у них имя.
    • Примечания /random (value|roll):
      • При использовании roll вместо value полученное значение также отображается в чате для всех игроков.
      • Если sequence не указан, эта команда может быть выполнена игроками без прав оператора.
    • Примечания /random reset:
      • По умолчанию все последовательности заполняются как 0, true, true.
      • Использование * вместо идентификатора последовательности сбрасывает все последовательности и устанавливает параметры по умолчанию.
      • Если начальное значение не указано, последовательность сбрасывается до параметров по умолчанию.
Атрибуты
  • Добавлен атрибут generic.max_absorb.
    • Действует аналогично generic.max_health, но вместо верхней границы для Health это верхняя граница для AbsorbingAmount.
    • Эффект моба absorb увеличивает generic.max_absorb, а также заполняет AbsorbAmount до максимума при применении.
Эксперименты
  • Добавлен экспериментальный переключатель «Ребаланс торговли деревенских жителей» (Меняет продаваемые зачарованные книги в зависимости от биома, в котором находится деревенский житель) (пакет данных (дата-пак) trade_rebalance).
Теги
  • Добавлены следующие теги блоков:
    • #camel_sand_step_sound_blocks: содержит #sand и #concrete_powder.
    • #concrete_powder: содержит все типы бетонных порошков.
  • Добавлен следующий тег типов нанесения урона:
    • #no_knockback: содержит explosion, player_explosion и bad_respawn_point.
      • Отбрасывает, не нанося урон. Используется в ванильной версии игры для нанесения урона, вызванного событиями, например, взрывами, которые отбрасывают отдельно.
  • Добавлен следующий тег сущности:
    • #non_controlling_rider: содержит slime и magma_cube.
      • Представляет объекты, которые не отключают контроль над движением своих транспортных средств.
Барьер
  • Больше не создает падающие частицы, когда на них падают объекты.
  • Больше не создаются частицы, когда игрок их чистит.
  • Теперь игроки могут заливать воду в блок в творческом режиме.
    • В них нельзя поместить воду или вылить её путем непрямого взаимодействия, например, с помощью раздатчика.
Цветок хоруса
  • Больше не обеспечивает поддержку висящих или стоящих блоков.
Узорчатая ваза
  • Теперь есть всплывающие подсказки к инвентарю творческого режима
Стол зачарования
  • Текстура слота для ляписа возвращена к текстуре, существовавшей до 1.18-pre5, чтобы обеспечить согласованность с кузнечным столом.
Скалк-сенсор и откалиброванный скалк-сенсор
Кузнечный стол
  • Теперь в пользовательских рецептах материал для обновления можно мгновенно отправить в графический интерфейс с помощью сочетания клавиш Shift + ЛКМ.
Проигрыватель
  • Музыкальный диск «Pigstep» теперь является последним из музыкальных дисков в инвентаре творческого режима.
Верблюд, лягушка, коза и нюхач
  • Теперь паникуют при нанесении урона, когда они прикреплены к поводку.
Деревенский житель
  • Скидка на лечение жителя больше не умножается, если житель повторно заражается и снова вылечивается. (Внимание! Это может сильно изменить способ торговли с жителями, если такой способ использовали на серверах до выхода обновления!)
  • Теперь пытаются создавать железного голема каждые 30 секунд (вместо 35).

Прочие сущности

[править | править код]
Отображаемые объекты
  • Отображаемые объекты теперь начинают обновлять свое положение и вращение на стороне клиента с первого тика после обновления.
    • В предыдущих версиях обновления применялись за один и тот же тик, что приводило к неравномерности движения.
    • Новое поведение теперь аналогично стойкам для брони, мобам и игрокам.
  • На сервере позиция и ротация по-прежнему обновляются немедленно.
  • Продолжительность этой интерполяции контролируется полем teleport_duration.
    • 0 означает, что обновления применяются немедленно.
    • 1 означает, что отображаемый объект переместится из текущей позиции в обновленную за один такт.
    • Более высокие значения распределяют движение на несколько тиков.
    • Обратите внимание, что это значение ограничено во избежание сбоев из-за периодических обновлений положения.
    • Новое значение будет применяться только к изменениям положения и вращения, сделанным после его изменения.
      • Это означает, что любое текущее движение продолжится без изменений.
  • Примечание: поведение во время езды осталось неизменным по сравнению с предыдущими версиями.

Генерация мира

[править | править код]
Распределение руды
  • Алмазная руда теперь чаще генерируется в слоях глубинного сланца верхнего мира.
    • Добавлено новое размещение рудных капель: равномерно распределенное, от высоты от −64 до −4, с размером капли 8, частотой генерации 2 и вероятностью выбрасывания 50 % при воздействии воздуха.
    • Другие существующие месторождения алмазной руды остаются нетронутыми.

Формат команды

[править | править код]
Функция
  • Одиночная обратная косая черта \ в качестве последнего символа строки без пробелов теперь позволяет продолжить команду на следующей строке.
    • Перед добавлением начальные и конечные пробелы следующей строки удаляются.
  • Функции теперь могут содержать строки макросов, что делает их функциональными макросами.
    • Любая строка, начинающаяся с $ (в качестве первого символа, не являющегося пробелом), обозначает строку макроса.
    • Строка макроса также содержит одну или несколько замен в виде $(переменная).
      • Команды с заменами переменных будут пересчитываться после замены.
        • Запуск команд этого типа требует дополнительных затрат по сравнению с предварительно проанализированными функциями.
        • Игра попытается кэшировать результат использования определённого набора параметров при вызове, чтобы снизить затраты при повторном вызове.
    • При вызове макроса функции необходимо предоставить соединение с данными для всех переменных-аргументов.
  • Числа, используемые в качестве аргументов макроса, теперь всегда вставляются без суффиксов, независимо от числового типа.
/execute
  • Добавлена подкоманда (if|unless) function.
/function
  • Расширено использование команд, теперь поддерживаются параметры для подстановки переменных макроса функции.
    • Новый синтаксис: /function <name> [<arguments>|with (block <sourcePos>|entity <source>|storage <source>) [<path>]]
    • Новые аргументы:
      • arguments: соединение данных, заключенное в {}.
      • Источник данных: спецификация источника данных, например, то, что уже можно использовать для /data get.
      • путь: спецификация пути NBT.
    • Источник данных и путь должны указывать составную запись данных.
    • Соединение должно содержать одну запись для каждой переменной, используемой в макросе.
    • В соединении может присутствовать больше данных, но они игнорируются.
    • Вызов функции, не являющейся макросом, с соединением данных игнорируется.
    • При вызове макроса предоставленные значения заменяются вместо спецификаций переменных, и результирующие команды выполняются.
      • Чтобы повысить производительность при повторном вызове с одним и тем же параметром, значения в предоставленном соединении, на которые ссылаются в макросе как на параметры, будут кэшироваться.
    • Любые синтаксические ошибки в строках, возникающие в результате подстановки переменных, приводят к пропуску всего вызова функции.
/item
  • Теперь можно заменять предметы в музыкальном блоке]].
  • Теперь можно удалять предметы с резных книжных полок.
/return
  • Добавлена подкоманда run.
Общее
  • История использованных команд теперь сохраняется и доступна во всех мирах.
    • Последние 50 команд, отправленных в чат, будут запоминаться во время игровых сессий.
    • Доступ к истории команд и чата можно получить, нажав стрелку вверх или стрелку вниз на клавиатуре в чате.
    • Обычный чат сохраняется только в течение одного игрового сеанса (при выходе с сервера или мира они очищаются).
    • Последние команды хранятся в command_history.txt в папке игры.
Достижения
  • Улучшение «Кузнечное дело» теперь дает 150 опыта после завершения.
Книга рецептов
Тики чанка
  • правило игры randomTickSpeed теперь влияет на скорость накопления снега и льда так же, как оно влияет на урожай и другие блоки.
Пакет данных
  • Теперь используется версия 18.
  • Добавлено поле decal в шаблоны отделки брони (по умолчанию: false).
    • Если true, текстура узора будет замаскирована на основе базовой брони.
Экран отладки
  • Значения в строке SH теперь будут отображаться в виде вопросительных знаков при игре на сервере вместо неправильных значений.
  • Когда хитбоксы отображаются с помощью F3+B, объекты, у которых есть пассажир, будут отображать точку присоединения пассажира.
  • Строка «Отладка» переименована в «Диаграммы отладки» и изменён её стиль.
    • Круговая диаграмма теперь называется диаграммой «Профилировщик».
  • Диаграммы на экране отладки теперь можно переключать с помощью комбинаций клавиш F3+1 (диаграмма профилировщика) и F3+2 (FPS и TPS) вместо Shift+F3 и Alt+F3.
  • Нажмите комбинацию клавиш F3+3, чтобы теперь отображались диаграммы пинга и полученного сетевого трафика.
  • Экран отладки больше не закрывается при переключении графиков.
  • Несколько диаграмм теперь могут отображаться одновременно, если они не конфликтуют друг с другом.
  • Текущий макет диаграммы будет сохранен при повторном включении экрана отладки.
Игровые события
  • Добавлено игровое событие entity_action вместо entity_roar и entity_shake.
  • Добавлено игровое событие unequip.
Экраны многопользовательской игры и выбора мира
  • Кнопка «Отмена» переименована в «Назад».
Пакеты метаданных
  • В пакеты данных и ресурсы были добавлены новые функции, позволяющие создавать пакеты, совместимые с несколькими версиями игры.
    • Метаданные пакета теперь включают необязательное поле supported_formats, которое описывает диапазон форматов пакета, поддерживаемых этим пакетом.
      • Примеры: 16, [16,17], {"min_inclusive": 16, "max_inclusive": 17
    • Поле pack_format по-прежнему является обязательным, а его формат остается неизменным, чтобы старые версии игры могли читать данные пакета.
      • Если supported_formats присутствует, он должен содержать значение, объявленное в pack_format.
      • Поскольку эта новая информация игнорируется более старыми версиями игры, они всегда будут видеть «обычный» пакет с одной версией без какой-либо расширенной совместимости.
  • Пакеты теперь могут содержать наложенные каталоги («оверлеи»).
    • Оверлеии — это дополнительные пакеты, накладываемые поверх «обычного» содержимого пакета.
      • Эти каталоги имеют тот же макет, что и пакет верхнего уровня, включая каталоги assets и data.
      • Оверлеи можно применять, если они поддерживают формат пакета клиента.
      • Оверлеи позволяют добавлять и заменять файлы, но не удалять их.
        • Например, если применено наложение foo, файл foo/assets/minecraft/textures/bar.png заменит содержимое assets/ minecraft/textures/bar.png.
      • pack.mcmeta и pack.png игнорируются в каталогах оверлея.
    • Для пакетов метаданных добавлен новый раздел под названием overlays.
      • Он содержит поле entries, содержащее список наложений.
      • Каждая запись оверлея имеет два поля:
        • formats — диапазон поддерживаемых форматов.
        • directory — каталог наложения (разрешенные символы: a-z, 0-9, _ и -)
    • Порядок применения: оверлеи располагаются снизу вверх по списку.
      • Например, если пакет имеет два оверлея: "entries": [{"directory":"A", ...}, {"directory":"B", ...}], игра сначала будет искать в каталоге B, затем в A, а затем в каталоге верхнего пакета.
Протокол
  • Оптимизирован способ отправки фрагментов клиентам, чтобы игроки с подключением к Интернету с низкой пропускной способностью могли играть на многопользовательских серверах.
    • Чанки больше не пересылаются клиенту по сети одним большим непрерывным пакетом.
    • Вместо этого они отправляются меньшими партиями в зависимости от доступной пропускной способности. Это значит, что:
      • Клиенты с очень низкой пропускной способностью не будут терять время при загрузке мира.
      • Клиенты с соединениями с низкой пропускной способностью могут взаимодействовать с миром, пока некоторые фрагменты ещё загружаются.
    • Теперь отправляются только фрагменты, находящиеся на расстоянии рендеринга клиента.
    • Пакеты игрового процесса теперь упаковываются в более крупные TCP-пакеты, чтобы уменьшить нагрузку на TCP-заголовки, что значительно снижает использование сети.
  • Изменён сетевой протокол, чтобы в будущем можно было использовать больше контента, управляемого данными.
    • Фаза настройки автоматически начинается после фазы входа в систему (то есть после проверки учётной записи клиента) и длится до тех пор, пока игрок не присоединится к миру (фаза игры).
    • Клиенты могут оставаться на этапе настройки неопределенное время — сервер должен выпустить его в свет.
    • Серверы также могут запросить у клиентов повторный вход в фазу настройки после того, как они вошли в фазу воспроизведения.
      • Другие игроки будут видеть таких клиентов отключенными.
    • Пользователи, находящиеся на этапе настройки, не будут видны в списке игроков.
    • Действия, разрешенные на этапе настройки (перенесены из этапа игры).
      • Конфигурация реестров, управляемых данными.
      • Конфигурация включенных функций.
    • Действия, общие для этапов настройки и воспроизведения:
      • Применение серверных пакетов ресурсов.
      • Обновление тегов.
      • Обмен пользовательскими пакетами.
      • Пакеты Ping и Keep-Alive.
    • Сервер теперь будет согласовывать пакет ресурсов на этапе настройки.
      • Это означает, что игрок больше не будет находиться в мире, когда отвечает на подсказки и перезагружает ресурсы.
  • Параметры клиента теперь передаются на этапе настройки сети при присоединении к серверу.
Пакет ресурсов
  • Теперь используется версия 18.
    • Процесс обновления пакета можно облегчить с помощью автоматического инструмента Slicer.[1]
    • Все текстуры, содержащие несколько спрайтов на листе для графического интерфейса, были разделены на отдельные спрайты в разделе textures/gui/sprites (автоматически с помощью инструмента Slicer).
    • Все текстуры из пространства имен realms были перемещены в пространство имен minecraft (автоматически с помощью инструмента Slicer).
    • villager2.png переименован в villager.png (автоматически с помощью инструмента Slicer).
    • Спрайты графического интерфейса icon/trial_available и realm_status/expires_soon анимируются с помощью объявлений .mcmeta вместо отдельных спрайтов (автоматически с помощью инструмента Slicer).
    • Фон всплывающей подсказки пакета теперь отображается в виде спрайта, состоящего из девяти фрагментов.
    • Значки кнопок «Доступность», «Язык», «Новости Realms» были отделены от базовой текстуры кнопок.
    • Кнопка «Пригласить в Realms» теперь отображается как наложение на обычную текстуру кнопки.
      • Выделенное состояние текстуры для этой кнопки было удалено.
    • Выделенные состояния для значков номеров приглашений Realms были удалены.
    • Восклицательные знаки в notification\more.png были удалены.
    • Фон текстового поля теперь представляет собой спрайт из девяти фрагментов по адресу widget/text_field и widget/text_field_highlighted.
    • Полоса прокрутки в списках и текстовых полях теперь представляет собой спрайт из девяти частей в виджете/прокрутке.

Scoreboard

  • Селектор отображаемого места belowName теперь называется below_name.

server.properties

  • Добавлен новый параметр log-ips (по умолчанию true).
    • Если установлено значение false, IP-адреса игроков не будут включаться в журнал, когда игроки присоединяются к игре.

Теги

  • Все типы бетонных порошков перенесены в новый добавленный тег блока #concrete_powder из тега блока #mineable/shovel, затем добавлен #concrete_powder в #mineable/shovel.
  • Удалены entity_roar и entity_shake из тегов игровых событий #vibrations и #warden_can_listen, затем добавлен entity_action и unequip им.
Телеметрия
  • На экран сбора данных телеметрии добавлена кнопка, которая ссылается на Заявление о конфиденциальности Microsoft.
Общее
  • Добавлена проверка символических ссылок в пакетах данных и пакетах ресурсов для повышения безопасности.
    • Эта функция расширяет возможности проверки символических ссылок в мирах, добавленных в предыдущем релизе.
    • Игра теперь будет предупреждать пользователей, если пакет, добавленный методом перетаскивания, содержит запрещенные символические ссылки.
    • Пакеты, содержащие запрещенные символические ссылки, не будут видны в пользовательском интерфейсе и командах.
    • Кроме того, каталоги и файлы, которые не распознаются как пакеты, больше не будут копироваться методом перетаскивания.

Экспериментальные изменения

[править | править код]

В данном разделе отражены экспериментальные изменения, добавляемые пакетом данных «Ребаланс торговли деревенских жителей».

Торговля с жителями

[править | править код]

Изменён торговый механизм продажи зачарованных книг библиотекарями.

  • Вместо того, чтобы предлагать всевозможные зачарованные книги, библиотекари теперь будут предлагать конкретные зачарованные книги в зависимости от того, из какого биома они происходят.
    • Деревни в джунглях и болотах не генерируются естественным путем. Таким образом, игроки должны разводить жителей деревни или лечить жителей-зомби в этих биомах, чтобы получить доступ к своим ремеслам.
  • Все продаваемые зачарованные книги теперь разделены на специальные книги и обычные книги.
    • Особые книги имеют определённые чары с фиксированным уровнем и доступны только у библиотекарей на уровне мастер с полным опытом.
    • Обычные книги имеют чары без фиксированного уровня, как и раньше.
  • Все чары, используемые для арбалета, удочки и трезубца, сняты с продажи.

Торговля со странствующим торговцем

[править | править код]

Список сделок теперь состоит из следующих сделок по порядку:

  • Покупка предметов торговцем (новое) × 2
  • Специальная продажа × 2
  • Обычная продажа × 5

Добавлены новые сделки на покупку, несколько сделок на продажу и изменены некоторые существующие сделки на продажу.

Исправление ошибок

[править | править код]

Было исправлено 125 ошибок.