Команда Minecraft выпустила новый тестовый снапшот 23w44a. В отличие от предыдущих выпусков, это обновление не добавляет новый контент, а сосредоточено на улучшении и полировке уже представленных функций. Основные изменения затронули визуальную составляющую медных блоков, расширили возможности украшенных горшков и внесли значительные корректировки в логику работы команд, что особенно важно для создателей карт и владельцев серверов. Также был исправлен ряд ошибок, включая проблему с потреблением памяти.
Обновленные текстуры медных дверей
Визуальные изменения в этом снапшоте коснулись декоративных блоков. Получили обновленные текстуры медные двери и медные люки. Разработчики уточнили детали моделей, чтобы они лучше сочетались с другими блоками из меди и исправили несколько визуальных несоответствий. В частности, была устранена ошибка, при которой верхняя часть медной двери некорректно отображала открытую часть окна (баг MC-266084). Также приведена в соответствие текстура предмета медной двери с её блочной моделью (баг MC-266147).
Украшенные горшки с таблицами добычи
Одно из ключевых технических нововведений - украшенные горшки теперь поддерживают использование таблиц добычи (loot tables). Это означает, что создатели карт и владельцы серверов могут назначать индивидуальный лут для каждого горшка через тег LootTable. Ранее горшки при разрушении дропали только самих себя и осколки. Теперь с помощью дата-паков можно настроить их на выпадение любых предметов, открывая новые возможности для создания головоломок, сокровищниц и сложных экономик на серверах.
Это изменение связано с повышением версии дата-паков до 23. Все новые дата-паки, созданные для этого и будущих снапшотов, должны указывать эту версию в файле pack.mcmeta.
Улучшения систем команд
Значительная часть обновления посвящена доработке и уточнению поведения команд, что критически важно для сложной автоматизации на серверах и в приключенческих картах. Изменения направлены на повышение предсказуемости и гибкости.
Команда tick
- Параметр
<time>в подкомандеtick stepтеперь стал необязательным. Если его не указывать, по умолчанию будет выполнено 1 тиковое обновление. Это упрощает написание скриптов.
Команда return
Логика работы return run была значительно переработана для большей согласованности:
return runтеперь всегда возвращает значение. Если выполняемая команда не дала валидного результата, функция, содержащаяreturn run, завершится неудачей (с параметрамиsuccess=0иresult=0).- Теперь команда корректно передаёт как значение успеха (
success), так и результат (result) из внутренней команды. Ранее она всегда устанавливалаsuccessв1. return runтеперь позволяет и сохранять значения. Конструкция видаexecute store ... run return run some_commandодновременно сохранит значение и вернёт его за пределы функции.- Добавлена новая подкоманда
return fail, которая принудительно завершает выполнение функции как неудачное (сsuccess=0иresult=0).
Команда function
- Если
function <function tag>запускает несколько функций в комбинации сreturn run, выполнение остановится после первого оператораreturnв любой из этих функций. - Одиночный вызов команды
functionтеперь всегда будет иметь возврат при выполнении сreturn run. Например, конструкцияreturn run execute [split context] run function <some function>вернёт результат после обработки первого контекста.
Конструкция execute if|unless function
- Поведение изменено:
execute if|unless functionбольше не будет всегда терпеть неудачу, если ни в одной из вызванных функций не было оператораreturn. - Если
returnне было найдено, условиеifне сработает (провалится), а условиеunless- сработает (будет успешным). - Первый встреченный
returnв любой из вызванных функций вернёт результат (для одиночного контекста).





