17w45a (Java Edition)
17w45a
Издание | |
---|---|
Тип |
Предварительная сборка |
Дата выпуска |
8 ноября 2017 г. |
Основная версия | |
Версия протокола |
343 |
Версия данных |
1447 |
17w45a — третий снимок для обновления 1.13.
Нововведения
- Пользовательский интерфейс, открывающийся при вводе команд в поле чата.
- Разные компоненты команд будут указаны разными цветами.
- Ошибки будут отображаться красным текстом без необходимости выполнения команды.
- Аргумент
nbt
в селекторах цели. - Новая библиотека синтаксического разбора команд под названием Brigadier.
Изменения
Мобы
- Модель была изменена, чтобы соответствовать по стилю моделям других мобов.
Команды
- Общее
- Команды и функции теперь намного быстрее и эффективнее исполняются.
- Большинство команд получили чувствительность к регистру. По возможность следует использовать нижний регистр.
- Например, такое использование вызовет ошибку:
/scoreboard ObJeCtIvEs ...
.
- Например, такое использование вызовет ошибку:
- Выходной сигнал командного блока был его «счётчиком успешности», но теперь является «результатом исполнения команды».
- Конкретные команды
/advancement
- Удалён аргумент
/advancement test
, вместо него следует использовать селекторы сущностей.
/clear
- Синтаксис команды
/clear
был изменён./clear [<цель>] [<предмет>] [<данные>] [<количество>] [<nbt>]
станет/clear [<цель>] [<предмет>] [<количество>]
.- Подробности указаны в описании типа аргумента
предмет
. - Аргумент
[<данные>]
был удалён в целях подготовки к сжатию, у предметов больше не будет данных, а значения метаданных будут перемещены в NBT.
/clone
- Синтаксис команды
/clone
был изменён./clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> filtered [force|move|normal] [<блок>] [<данные>]
станет/clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> filtered [<блок>] [force|move|normal]
./clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> [replace|masked] [force|move|normal] [<блок>] [<данные>]
станет/clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> [replace|masked] [force|move|normal]
.
/defaultgamemode
и/gamemode
- Теперь принимают только полные строковые идентификаторы, сокращения и номера режимов больше не работают.
/difficulty
/difficulty [<значение>]
принимает только полные строковые идентификаторы, сокращения и номера режимов больше не работают./difficulty 2
теперь/difficulty normal
./difficulty p
теперь/difficulty peaceful
.
- Текущая сложность может быть запрошена вызовом
/difficulty
без аргументов.
/effect
- В целях предотвращения неоднозначности синтаксис команды
/effect
был разделён:/effect <сущность> <эффект>
теперь/effect give <сущность> <эффект>
./effect <сущность> clear
теперь/effect clear <сущность> [<эффект>]
.
- Добавление эффекта теперь будет выдавать ошибку, если команда на самом деле ничего не сделала.
- Некоторые мобы имеют иммунитет (например дракон Края).
- Более сильные существующие эффекты не дадут добавить более слабую версию.
/enchant
- Удалена взамен
/modifyitem
.
/execute
- Синтаксис команды
/execute
был разделён.- Подкоманды-модификаторы изменяют принцип выполнения команды:
/execute as <сущность> <цепная команда>
исполняет командуцепная команда
, используя сущность<сущность>
(но не изменяет позицию)./execute at <сущность> <цепная команда>
исполняет командуцепная команда
, используя позицию сущности<сущность>
(но не изменяет сущность)./execute offset <x y z> <цепная команда>
исполняет команду, используя позицию<x y z>
./execute align <оси> <цепная команда>
исполняет команду, выравнивая текущую позицию к сетке блоков (округляя вниз),<оси>
— любая комбинация изx
y
andz
(например:x
,xz
,zyx
илиyz
).x=-1.8,y=2.3,z=5.9
с использованиемx
станетx=-2,y=2.3,z=5.9
.x=2.4,y=-1.1,z=3.8
с использованиемyxz
станетx=2,y=-2,z=3
.
- Условные подкоманды могут дать возможность предотвратить исполнение команды:
/execute (if|unless) block <x y z> <блок> <цепная команда>
исполняет командуцепная команда
, если<x y z>
соответствует (или не соответствует) блоку<блоу>
./execute (if|unless) blocks <начало> <конец> <цель> (all|masked) <цепная команда>
исполняет командуцепная команда
, если область между блоками<начало>
и<конец>
соответствует (или не соответствует) области<цель>
./execute (if|unless) entity <сущность> <цепная команда>
исполняет командуцепная команда
, если<сущность>
существует (или не существует; команда возвращает одну или более сущностей)./execute (if|unless) score <цель> <задание цели> (<|<=|=|>=|>) <источник> <задание источника> <chained command>
исполняет команду, если счёт<цели>
соотносится (или не соотносится) со счётом<источника>
по заданному критерию.
- В качестве замены команды
/stats
, добавлена новая подкомандаstore
, позволяющая сохранить где-либо результат команды:/execute store (result|success) <название> <цель> <цепная команда>
.result
— результат команды, заменяющий следующие удалённые значения:AffectedBlocks
,AffectedEntities
,AffectedItems
,QueryResult
.success
— сколько раз команда была успешна. Это обычно0
или1
, но если команда разделилась, (напримерas @a
), то это значение может быть больше1
. Этот параметр заменяетSuccessCount
.- Значение хранится в таблице счёта игровых событий под значениями
<название>
и<цель>
. Цель
должна существовать, но в отличие от/stats
, начальное значение<названия>
может не быть задано.- Значение будет сохранено, когда команда целиком закончит выполняться.
- Если команда неуспешна (
success
равен0
),result
всегда будет равен0
. - Будет чётко указан ожидаемый результат каждой команды..
- Все подкоманды могут быть сцеплены вместе.
- После каждой подкоманды нужно указать другую подкоманду.
- Когда сцепление подкоманд завершено, для исполнения самой команды нужно ввести
run
./
больше не разрешено использовать перед командой.
/execute as somebody at somebody run say привет
.
- Примеры старых команд:
/execute @e ~ ~ ~ detect ~ ~ ~ stone 0 say Камень!
теперь/execute as @e at @s if block ~ ~ ~ stone run say Камень!
./execute @e ~ ~ ~ detect ~ ~ ~ grass 0 summon pig
теперь/execute at @e if block ~ ~ ~ grass run summon pig
./execute @e ~ ~ ~ say Здравствуйте!
теперь/execute as @e run say Здравствуйте!
.
- Подкоманды-модификаторы изменяют принцип выполнения команды:
/xp
теперь является альтернативных названием/experience
.- Команда разбита на три подкоманды:
/experience add <игроки> <количество> [points|levels]
.- Добавляет
<количество>
очков или уровней указанным<игрокам>
(по умолчанию добавляются очки). - Как обычно, добавление очков может повысить уровень игроков.
- Поддерживаются отрицательные числа для уменьшения опыта игроков.
- При вычитании очков уровень игрока может понизиться.
- Добавляет
/experience set <игроки> <количество> [points|levels]
.- Задаёт опыт игрока как
<количество>
очков или уровней<players>
(по умолчанию очков). - Очки не могут быть заданы сверх лимита текущего уровня игрока.
- При изменении уровня процент прогресса до следующего уровня сохранится.
- Задаёт опыт игрока как
/experience query <игрок> (points|levels)
.- Возвращает количество очков или уровней у игрока
<игрок>
.
- Возвращает количество очков или уровней у игрока
/fill
- Синтаксис команды
/fill
был изменён./fill <x y z> <xt yt zt> <блок> <данные> replace [<новый блок>] [<новые данные>]
теперь/fill <x y z> <xt yt zt> <блок> replace [<фильтр>]
./fill <x y z> <xt yt zt> <блок> [<данные>] [destroy|hollow|keep|outline|replace] [<nbt>]
теперь/fill <x y z> <xt yt zt> <блок> [destroy|hollow|keep|outline|replace]
.
/function
/function
больше не принимает аргументы[if|unless] <сущность>
.- Эта возможность была добавлена команде
/execute
. /function foo if @e
теперь/execute if entity @e run function foo
.
- Эта возможность была добавлена команде
/gamerule
больше не принимает неизвестные («пользовательские») игровые правила.- Для получения такого же функционала следует использовать функции или систему счёта игровых событий.
- Существующие пользовательские игровые правила окажутся недоступны.
- Переданные команде
/gamerule
значения проверяются на правильность типа (если нужно число, а получена строка, существование ошибки очевидно).
/give
- Синтаксис команды
/give
был изменён./give <игроки> <предмет> [<количество>] [<данные>] [<nbt>]
теперь/give <игроки> <предмет> [<количество>]
.- Подробности указаны в описании типа аргумента
предмет
. - Аргумент
[<данные>]
был удалён в целях подготовки к сжатию, у предметов больше не будет данных, а значения метаданных будут перемещены в NBT.
/kill
- Указывать параметр
цель
теперь обязательно.
- Координата y теперь возвращается как
64
, а не?
. - Результат
result
команды, используемый командой/execute store
, будет абсолютным расстоянием до строения.
/particle
- Аргумент
<params>
был удалён, вместо этого параметры для частиц наподобиеblockcrack
могут быть указаны сразу после агрумента<название>
, используя новый блок аргументов./particle blockcrack stone [variant=smooth_granite] ~ ~ ~ 0 0 0 0 1
.
- Названия частиц были приведены к нижнему регистру и могут указываться с пространством имён.
- Синтаксис команды
/replaceitem
был изменён./replaceitem block <позиция> <ячейка> <предмет> [<количество>] [<данные>] [<nbt>]
теперь/replaceitem block <позиция> <ячейка> <предмет> [<количество>]
./replaceitem entity <цель> <ячейка> <предмет> [<количество>] [<данные>] [<nbt>]
теперь/replaceitem entity <цель> <ячейка> <предмет> [<количество>]
.- Подробности указаны в описании типа аргумента
предмет
. - Аргумент
[<данные>]
был удалён в целях подготовки к сжатию, у предметов больше не будет данных, а значения метаданных будут перемещены в NBT.
- Аргумент
ячейка
больше не требуетslot.
.- Например,
slot.hotbar.1
теперьhotbar.1
.
- Например,
- У команд
/scoreboard
удалён[<dataTag>]
, взамен используются аргументыnbt
в селекторах сущностей. /scoreboard players tag
и/scoreboard teams
удалены. Заменены/tag
и/team
соответственно./scoreboard players test
удалены в пользу/execute (if|unless) score
, селекторов сущностей и/scoreboard players get <цель> <задание>
.
- Синтаксис команды
/setblock
был изменён.
- Удалена. Объединена с командой
/execute
. - Новая команда
/execute
не является точной заменой, поведение было изменено:- Исполнение теперь в расчёте на каждую команду, а не на каждую сущность или каждый блок.
- Остались только
result
иsuccess
, которые покрывают все удалённые типы значений.
*
может быть использовано вместо аргументаисточник
, чтобы останавливать все звуки с определённым названием для всех источников.
/tag
- Заменяет
/scoreboard players tag
. - Синтаксис остался таким же.
/team
- Заменяет
/scoreboard teams
. - Синтаксис остался таким же.
/testfor
,/testforblock
и/testforblocks
- Удалены. Входят в состав
/execute
.
- Команда удалена в пользу
/weather
.
/tp
теперь является альтернативным названием/teleport
(как/w
,/msg
и/tell
).- Координаты теперь относительно исполнителя, что соответствует поведению других команд.
- Синтаксис
/tp
остался, но поведение как у/teleport
.
- Если время не указано, по умолчанию задаётся пять минут. Ранее время было случайным.
- Типы аргументов
- Селекторы цели
- Введено больше кода для обработки ошибок.
- Аргументы могут быть заключены в кавычки.
- Указания наподобие
limit=0
,level=-10
,gamemode=purple
теперь запрещены.
- Указания наподобие
- Отдельных значений «min» и «max» больше нет, вместо этого добавлена поддержка диапазонов.
level=10
— уровень 10.level=10..12
— уровни 10, 11 или 12.level=5..
— уровень 5 или выше.level=..15
— уровень 15 или ниже.
- Таинственные сокращённые названия параметров были удалены.
m
→gamemode
.l
илиlm
→level
.r
илиrm
→distance
.rx
илиrxm
→x_rotation
.ry
илиrym
→y_rotation
.c
→limit
.
x
,y
,z
,distance
,x_rotation
,y_rotation
теперь типаdouble
, и допустимы значения наподобие12.34
.x
иz
больше не корректируются к центру.- Это означает, что
x=0
больше не эквивалентноx=0.5
.
- Это означает, что
gamemode
(ранееm
) больше не позволяет указывать числовые или сокращённые идентификаторы.limit
(ранееc
) больше не позволяет указывать отрицательные значения.- Используйте вместо них
sort=furthest
.
- Используйте вместо них
- Аргумент
название
теперь поддерживает пробелы, если название заключено в кавычки. - В селекторах цели возможно указывать один и тот же аргумент повторно.
tag=foo,tag=bar,tag=!baz
находит сущности сfoo
,bar
, но неbaz
.type=!cow,type=!chicken
находит сущности, не являющиеся ни коровами, ни курицами.type=cow,type=chicken
нельзя использовать, потому что сущность не может быть одновременно коровой и курицей.
- Может быть указан способ сортировки.
sort=nearest
— ранее использовавшийся вариант по умолчанию, сортирует по возрастанию расстояния (используется по умолчанию для@p
).sort=furthest
— противоположность предыдущему (ранее для этого использовался бы синтаксисc=-5
).sort=random
для случайной сортировки (используется по умолчанию для@r
).sort=arbitrary
— новый вариант, не сортирующий результат (используется по умолчанию для@e
,@a
).
- Указание счёта теперь выглядит так:
scores={foo=1,bar=1..5}
. - Достижения могут быть проверены так:
advancements={foo=true,bar=false,custom:something={criterion=true}}
.true
означает «достижение выполнено»,false
— «достижение не выполнено».- Также может быть передан блок конкретных критериев, соответствие которым должно быть проверено. (смысл
true
/false
такой же).
- Аргументы
<блок>
,[<данные>]
и[<nbt>]
объединены в аргумент<блок>
, который выглядит так:stone
.minecraft:redstone_wire[power=15,north=up,south=side]
.minecraft:jukebox{RecordItem:{...}}
.minecraft:furnace[facing=north]{BurnTime:200}
.
- Идентификатор обязателен, но если пространство имён не указано, то по умолчанию всё ещё используется
minecraft:
. - Состояния указаны в

, разделяются запятыми и должны соответствовать поддерживаемым блоками свойствам/значениям. Состояния могут не быть указаны.minecraft:stone[doesntexist=purpleberry]
— ошибка синтаксиса, посколькуstone
не имеет свойстваdoesntexist
.minecraft:redstone_wire[power=tuesday]
— ошибка синтаксиса, поскольку свойствоpower
блокаredstone_wire
— число от 0 до 15.
- NBT-тег указывается в
{}
, и передаётся блоку напрямую. Тег может не быть указан. - В контексте «условий»/проверки наличия блоков будет делаться проверка на соответствие только указанных свойств.
- Если проверять на
redstone_wire[power=15]
, будет учитываться только выход энергии, а другие состояния наподобиеnorth
будут игнорироваться.
- Если проверять на
- В контексте установки блоков, все указанные состояния будут переданы, а неуказанные — заменены на зависящие от блока умолчания.
- Если задать
redstone_wire[power=15]
, свойство блокаpower
будет 15, но свойствоnorth
будет значением по умолчанию, в данном случае этоnone
.
- Если задать
- В 1.13 больше нет значений данных блоков. Блокам с разными значениями данных теперь соответствуют или блоки с разными состояниями, или разные блоки.
- Аргументы
<предмет>
,[<данные>]
и[<nbt>]
объединены в аргумент<предмет>
, который выглядит так:stone
.minecraft:stick{display:{Name:"Палка неправды"}}
.
- Идентификатор обязателен, но если пространство имён не указано, то по умолчанию всё ещё используется
minecraft:
. - NBT-тег указывается в
{}
, и передаётся блоку напрямую. Тег может не быть указан.- Любая другая информация теперь соответствует или другому предмету, или свойству в NBT.
Исправления
- 19 ошибок исправлено
- Из выпущенных версий до 1.13
- MC-32972 – Команда
/summon
принимает аргументы, которые впоследствии игнорирует. - MC-101113 – Команда
/playsound
неправильно проверяет правильность аргументов. - MC-118308 – Набор текста в некоторых текстовых полях может активировать рассказчика.
- Из выпущенных предварительных версий 1.13
- MC-121281 – Полосы прокрутки в меню серверов и режима Творчество срабатывают только от колеса мыши.
- MC-121283 – Графический интерфейс отключается при погружении под воду или лаву.
- MC-121284 – Кнопки открытия папок карты и пакета ресурсов не работают.
- MC-121288 – Ошибки управления мыши в режиме обзора «Кинематографическая камера».
- MC-121302 – Неуместная активация и дезактивация кнопки «По адресу».
- MC-121314 – Текст слайдера разрешения в полноэкранном режиме не умещается в слайдере.
- MC-121328 – Неправильное масштабирование графического интерфейса.
- MC-121329 – Нажатие клавиши чата больше не выбирает поиск в инвентаре режима Творчество и книге рецептов.
- MC-121334 – Нажатие клавиш [1-9] во вкладке поиска режима Творчество посылает дополнительное событие нажатия клавиши строке поиска.
- MC-121396 – Клавиши WASD указаны в настройках в странном порядке.
- MC-121418 – Аварийное завершение игры при попытке вставить нестроковое содержимое буфера обмена в текстовое поле.
- MC-121419 – События мыши в чате обрабатываются со смещением.
- MC-121421 – Нажатие ↵ Enter в полях названия и зерна мира в меню создания карты больше не создают карту.
- MC-121456 – Чанки исчезают, если в полноэкранном режиме переключить окно.
- MC-121468 – Кнопки упорядочения значений статистики больше не работают.
- Из предыдущей предварительной версии
- MC-121517 – Кнопка включения полноэкранного режима не работает на macOS.