В Minecraft 1.13 мы полностью переделываем систему команд, чтобы ими было проще пользоваться, чтобы они быстрее работали, и чтобы они поддерживали более крутые штуки, везде где только можно. Сегодняшний снапшот представляет собой вроде бы работающий вариант командной системы.
Изменения в Майнкрафт 1.13
- Новая модель лошади! Урра!
- Множество исправленных ошибок! В первую очередь, зависания на macOS.
- Новая бибилотека команд! Подробности ниже.
- Добавлены новые параметры для масштабирования интерфейса! Пользователи разрешения 4k радуйтесь, вы увидите чуть больше пикселей ;)
Исправлены ошибки
- MC-121281 — Скроллбары (индикаторы прокрутки) в творческом инвентаре и меню сервера не были доступны для мыши
- MC-121282 — Иконки серверов удалялись при загрузки меню сетевой игры
- MC-121283 — Подводный и «подлавовый» оверлей не отображался
- MC-121284 — Кнопка ресурспаков и папки миров не работала
- MC-121288 — Кинематографическая камера не работала как надо
- MC-121302 — Кнопка «Прямое соединение» включалась/выключалась неверным образом
- MC-121314 — Текст бегуна «FS Resolution» не помещался в отведённом поле
- MC-121328 — Интерфейс масштабировался неверно
- MC-121329 — Нажатие кнопки «чат» не выбирало поиск в меню творческого инвентаря или книге рецептов
- MC-121334 — Нажатие [1-9] в творческом режиме, отправляло дополнительное нажатие в поле поиска
- MC-121396 — Кнопки WASD перечислены в странной последовательности
- MC-121418 — Сбой при попытке вставить что-то не являющееся строкой из буфера обмена
- MC-121419 — Ошибка при отображение всплывающих подсказок
- MC-121421 — Нажатие кнопки Enter в названии или поле ключа генератора, при создании мира не вызывало создание мира.
- MC-121433 — Буквы (названия клавиш) на не английском языке выводилось в нижнем регистре.
- MC-121456 — Чанки пропадали после переключения в полноэкранный режим
- MC-121468 — Статистика не упорядочивалась по клику на иконку
- MC-121517 — Кнопка переключения в полноэкранный режим не переключала игру в полноэкранный режим
- Множество ошибок, связанных с командами, поскольку мы полностью переписали систему команд ¯\(ツ)/¯
Команды
Предупреждение
- Команды ещё не работают в сетевой игре. Вы можете писать их как обычно, но они не поддерживают подсказки по кнопке TAB и т.п.
- Автозаполнение по кнопке TAB всё ещё в работе, поэтому подсказки будут работать только для основных вещей.
- Многое не завершено или может работать не так как должно. Пожалуйста сообщайте об этом на баг-трекере, чтобы мы могли ими заняться!
- Если мы почувствуем, что система команд слишком сырая или неработоспособная (а это вполне возможно), то мы откатим изменения, до тех пор пока не доработаем. Это предварительная версия, до финала ещё далеко.
- Некоторые изменения не будут заметны до выпуска более поздних снапшотов. Например значения data всё ещё технически существуют, но будут удалены очень скоро.
- Новые команды не переведены. Они созданы с учетом возможности перевода, проще чем это сделано сейчас, но пока этого ещё нет.
- Интерфейс набора команды ещё слишком сырой. Но скоро он будет супер-классным!
Общая информация
- Большинство команд стали чувствительнее к регистру, чем раньше. Везде где возможно, используется нижний регистр.
- Например, такое больше не разрешено:
/scoreboard ObJeCtIvEs ...
- Команды будут работать быстрее и эффективнее. Особенно функции. Да!
- Функции будут полностью анализироваться и кэшироваться при загрузке. Это значит, что если какая-то команда указана в них неправильно, то это будет известно сразу в момент загрузки.
- Это значит, что для проверки работы карты в версии 1.17.x, нужно будет просто открыть карту в этой версии. Все ошибки будут фиксироваться в журнальном файле. Если ошибок нет, то вероятно всё будет работать отлично!
- Вот перечень всех возможных вариантов команд: https://gist.github.com/Dinnerbone/943fbcd763c19be188ed6b72a12d7e65
- Он такой подробный, потому каждая строка — это отдельный вариант написания команды, с учетом всех возможных параметров и условий.
...
— означаете, что тут необходимо указать другую команду-> foo
— означает, что это алиас для foo
- Новая библиотека команд называется «Brigadier» (Бригадир). Тут нет никаких отсылок, мне просто понравилось название.
Отдельные команды
Если команды нет в этом списке, то это значит что с ней не произошло заметных изменений и она должна работать как прежде.
/advancement
- Удалена команда
/advancement test
поскольку теперь она станет частью селектора сущностей
/clear
- Изменился синтаксис команды
/clear
/clear [<target>] [<item>] [<data>] [<count>] [<nbt>]
->/clear [<target>] [<item>] [<count>]
- Изменение связано с изменением синтаксиса параметра item (предмет)
/clone
- Изменился синтаксис команды
/clone
/clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> filtered [force|move|normal] [<block>] [<data>]
->/clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> filtered [<block>] [force|move|normal]
/clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> [replace|masked] [force|move|normal] [<block>] [<data>]
->/clone <x1 y1 z1> <x2 y2 z2> <xt yt zt> [replace|masked] [force|move|normal]
- Изменение связано с изменением синтаксиса параметра block (блок)
/defaultgamemode, /gamemode
- Теперь поддерживаются только текстовое название режима. Цифры и сокращения использовать нельзя
/gamemode 2
->/gamemode adventure
/defaultgamemode sp
->/defaultgamemode spectator
/difficulty
/difficulty <value>
— поддерживает только строчное представление названия сложности. Сокращения и цифры больше не поддерживаются./difficulty 2
->/difficulty normal
/difficulty p
->/difficulty peaceful
- Можно уточнить текущую сложность, написав команду без указания аргументов —
/difficulty
/effect
- Синтаксис команды
/effect
изменился, чтобы предотвратить возможную путаницу/effect <entity> <effect>
->/effect give <entity> <effect>
/effect <entity> clear
->/effect clear <entity> [<effect>]
- Выдача эффекта будет считаться неуспешной, если команда не произвела никаких результатов
- Некоторые мобы имеют иммунитет к эффектам (например, эндер-дракон)
- Наличие более мощного эффекта, при попытке наложить такой же но меньшего уровня
/enchant
- Команда удалена, в связи с добавление команды
/modifyitem
/execute
- Команда
/execute
была полностью переработана - Поддерживаются модификаторы, определяющие как команда будет запущена:
/execute as <entity> <chained command>
— выполняет команду используя указанную сущность (но не меняя координаты)/execute at <entity> <chained command>
— выполняет команду, используя координаты указанной сущности (не не меняя саму сущность)/execute offset <x y z> <chained command>
— выполняет команду, используя координаты<x y z>
/execute align <axes> <chained command>
— выполняет команду, скорректировав координаты по сетке (гдеaxes
— это любая комбинацияx
y
иz
)
- Условные модификаторы, позволяющие предотвратить запуск команды:
/execute (if|unless) block <x y z> <block> <chained command>
— — проверяет условие совпадение блока в точке<x y z>
с<block>
и выполняет команду при положительном (if) или отрицательном (unless) результате проверки условия./execute (if|unless) blocks <begin> <end> <destination> (all|masked) <chained command>
— проверяет условие совпадение точки<destination>
региону между<start>
и<end>
и выполняет команду при положительном (if) или отрицательном (unless) результате проверки условия./execute (if|unless) entity <entity> <chained command>
— проверяет существование сущности<entity>
(т.е. их должно быть 1 или больше) и выполняет команду при положительном (if) или отрицательном (unless) результате проверки условия./execute (if|unless) score <target> <targetObjective> (<|<=|=|>=|>) <source> <sourceObjective> <chained command>
— проверяет соответствие счёта<target>
счёту<source>
и выполняет команду при положительном (if) или отрицательном (unless) результате проверки условия.
- В качестве замены команды
/stats
, новая подкомандаstore
позволит сохранять результат выполнения команды в любое время:/execute store (result|success) <name> <objective> <chained command>
result
— это результат выполнения команды, которые заменит старые:AffectedBlocks
,AffectedEntities
,AffectedItems
,QueryResult
success
— счётчик сколько раз команда была выполнена успешно. Обычно это 0 или 1. Но если команды была разделена (например с помощью модификатораas @a
) то оно может быть и больше 1. Этот счётчик заменяетSuccessCount
- Значение сохраняется в Scoreboard, под используя название
<name>
и задачу<objective>
- Задача должна существовать, но в отличии от команды
/stats
не нужно задавать ей начальное значение для<name>
- Значение будет сохранено когда будет завершено выполнение всей команды
- Если команда не была выполнена (
success
равно 0), тоresult
будет также равен 0
- Вы можете использовать все под команды вместе
- После каждой под команды нужно писать следующую
- После того перечислены все подкоманды, саму команду напишите после параметра
run
/execute as somebody at somebody run say hi
- Примеры того как изменится команды (было → стало):
/execute @e ~ ~ ~ detect ~ ~ ~ stone 0 say Stone!
->/execute as @e at @s if block ~ ~ ~ stone run say Stone!
/execute @e ~ ~ ~ detect ~ ~ ~ grass summon pig
->/execute at @e if block ~ ~ ~ grass run summon pig
/execute @e ~ ~ ~ say Hello!
->/execute as @e run say Hello!
/experience
/xp
— это теперь алиас для/experience
- Команда разделена на три подподкоманды
/experience add <players> <amount> [points|levels]
- Добавляет
<amount>
очки опыта или уровни указанным игрокам<players>
(по умолчанию, очки опыта) - Добавленные очки опыта будут, как обычно, вызывать повышение уровня
- Отрицательные значения поддерживаются — чтобы отнимать опыт
- Отняв очки опыта, можно также понизить и уровень игрока
- Добавляет
/experience set <players> <amount> [points|levels]
- Задаёт
<amount>
значение очков опыта или уровня указанных игроков<players>
(по умолчанию, очки опыта) - Нельзя задать большее значение очков опыта, чем позволяет текущий уровень
- При изменении уровня, очки меняются пропорционально (т.е. сколько их было в процентах, на предыдущем уровне)
- Задаёт
/experience query <player> (points|levels)
- Возвращается значение очков опыта или уровня игрока
<player>
- Возвращается значение очков опыта или уровня игрока
/fill
- Синтаксис команды
/fill
изменился/fill <x y z> <xt yt zt> <block> <data> replace [<replaceBlock>] [<replaceData>]
->/fill <x y z> <xt yt zt> <block> replace [<filter>]
/fill <x y z> <xt yt zt> <block> [<data>] [destroy|hollow|keep|outline|replace] [<nbt>]
->/fill <x y z> <xt yt zt> <block> [destroy|hollow|keep|outline|replace]
- Изменение связано с изменением синтаксиса параметра block (блок)
/function
- Больше не поддерживается параметры
(if|unless) <entity>
- Они перенесены в команды
/execute
/function foo if @e[tag=bar]
->/execute if entity @e[tag=bar] run function foo
- Они перенесены в команды
/gamerule
- Команда
/gamerule
больше не принимает неизвестных (т.е. «пользовательских») игровых правил- Это вызывало множество проблем из-за того, что опечатки воспринимались как игровые правла
- Используйте вместо своих правил функции или таблицу рекордов
- Созданные ранее игровые правила не будут доступны, будут поддерживаться только встроенные в игру.
- Значения для команды
/gamerule
теперь будут проверяться на соответствие типов данных (чтобы не указывать текст вместо чисел), что позволит избежать очевидных ошибок
/give
- Синтаксис команды
/give
изменился/give <players> <item> [<count>] [<data>] [<nbt>]
->/give <players> <item> [<count>]
- Изменение связано с изменением синтаксиса параметра item (предмет)
/modifyitem
- Это новая команда, которая заменит
/enchant
- Пока нет информации о том как она будет работать.
/replaceitem
- Синтаксис команды
/replaceitem
изменился/replaceitem block <pos> <slot> <item> [<count>] [<data>] [<nbt>]
->/replaceitem block <pos> <slot> <item> [<count>]
/replaceitem entity <target> <slot> <item> [<count>] [<data>] [<nbt>]
->/replaceitem entity <target> <slot> <item> [<count>]
- Изменение связано с изменением синтаксиса параметра item (предмет)
/scoreboard
- У команды был
/scoreboard
удалён параметр[<dataTag>]
- Изменение связано, с изменением селектора сущностей
/scoreboard tag
преобразовано в команду/tag
/scoreboard team
преобразовано в команду/team
/scoreboard players test
удалена
/setblock
- Синтаксис команды
/setblock
изменился/setblock <pos> <block> [<data>] [<mode>] [<nbt>]
->/setblock <pos> <block> [<mode>]
- Изменение связано с изменением синтаксиса параметра block (блок)
/stats
- Удалена, теперь является частью команды
/execute
/stopsound
- Моно использовать
*
для указания всех звуков с подобным именем из любых источников
/testfor, /testforblock, /testforblocks
- Удалены. Теперь это часть команды
/execute
/toggledownfall
- Удалена. Она всегда использовалась для остановки дождя, а потом через минуту снова начинался дождь.
- Пользуйтесь командой
/weather
/tp, /teleport
/tp
будет алиасом для команды/teleport
- Кординаты теперь указывают относительно к исполнителю, также как во всех других командах
/trigger
/trigger <objective>
— это сокращение для команды/trigger <objective> add 1
/weather
- Если время не указано, то будет установлено 5 минут (раньше устанавливалось случайным образом)
Командные блоки
На выходе командного блока раньше был «счётчик успешных выполнений», а сейчас — «результат».
Типы параметров команд
Селектор сущностей (@E[..])
- Улучшенный анализатор ошибок призван помочь предотвратить возможные ошибки. Вещи вроде
limit=0
,level=-10
,gamemode=purple
не будуту разрешены, поскольку не имеют смысла. - Больше нет отдельных минимального и максимального значениям, вместо этого мы используем интервалы
level=10
— это level 10level=10..12
— это level 10, 11 or 12level=5..
это всё от level 5 и вышеlevel=..15
это всё от level 15 и нижеx
&z
больше не отцентрированы по центру (т.е.x=0
не соответствуетx=0.5
). Координаты поддерживают десятичные дроби, поэтому если нужно можно их использоватьx=0.5
.gamemode
(ранееm
) больше не поддерживает цифровых идентификаторов или сокращений, которые устарели уже очень давно.- Таинственные сокращения были переименованы
m
->gamemode
l
илиlm
->level
r
илиrm
->distance
rx
илиrxm
->x_rotation
ry
илиrym
->y_rotation
c
->limit
limit
(былоc
) — больше не поддерживает отрицательных значений, вместо этого используетсяsort=furthest
x
,y
,z
,distance
(былоr
),x_rotation
(былоrx
) andy_rotation
(былоry
) — теперь поддерживают дробные значения12.34
- Пробелы разрешены!
@e[name="Hello World"]
- Поддержка NBT!
@e[nbt={Cool:1b},nbt=!{Uncool:1b}]
- Где можно, поддерживаются повторяющиеся аргументы
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
— для тех кто «не выполнил достижения»- Поочередно указываются блоки критериев для проверки.
Блоки
- Везде, где раньше требовались отдельные параметры block, data и nbt, теперь осталься только аргумент block, который выглядит так:
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]
— это ошибка, потому что у блокаredstone_wire
свойствоpower
должно принимать числовые значения от 0 до 15- Теги NBT указываются внутри {} и работают так как вы и ожидали.
- В контексте проверки состояний блока, будут проверяться только указанные состояния.
- Если вы проверяете
redstone_wire[power=15]
, то проверяется только значение свойстваpower
, но при этом игнорируется другое состояние, напримерnorth
. - В случае установки блока, то все пропущенные значения будут принимать значения по умолчанию, соответствующие данному блоку.
- Если установить блок
redstone_wire[power=15]
, то мощность сигнала будет равна 15, но вот значениеnorth
будет соответствовать значению по умолчанию (в данном случае —none
) - Больше нет такого понятия как значение data блока. Всё это разные блоки или их состояния.
Предметы
- Везде где раньше требовались параметры item и nbt теперь используется единые параметр «item», который выглядит так:
stone
minecraft:stick{display:{Name:"Stick of Untruths"}}
- Идентификатор необходим, но как и раньше если пространство имён не определено, то будет использовано значение по умолчанию —
minecraft:
- Теги NBT указываются внутри {}, и работают так как вы и ожидали.
- Больше нет такого понятия как значение data блока или значение повреждения (damage) предмета.
- Значение повреждения предмета перенесено в nbt-теги.
- Любая другая характеристика предмета теперь является либо отдельным предметом или свойством в виде nbt-тега.
Установка снапшота
Пожалуйста сообщайте о любых найденных в Майнкрафте ошибках на bugs.mojang.com. Если нам никто о них не расскажет, то мы их и исправить не сможем!
Чтобы получить обновленную версию, открой лаунчер и нажмите кнопку «New Profile». Назовите новый профиль «snapshots», поставьте галочку в поле «Enable experimental development snapshots» и сохраните. Чтобы переключиться в нормальную версию, Вы можете выбрать её в выпадающем списке в нижнем левом углу лаунчера. Создавайте резервные копии, перед запуском снапшота или запускайте игру в другой директории (см. опции в окне «new profile»).
Снапшоты могут сломать Ваш мир и сделать Вам больно! Создавайте резервные копии и/или запускайте игру в директории отличной от Вашего основного мира.
На ошибки жаловаться сюда:
A Minecraft Java Edition snapshot for 1.13
Верните старых, НОРМАЛЬНЫХ лошадей! Новые — настоящий ужас!
Увы, старые были как раз ненормальные (с точки зрения стиля игры). Давно пора было их исправить.
Нет сокращёний? Я себе руку сломаю пока напишу. Мне и так хватало game mode вместо gm. Стремные лошади, ужасные команды которые сделали не легче, а сложнее. На версии 1.13 я играть не буду.
Предполагается, что при наборе команд активно будут работать автоподстановки через таб.m c . Согласен, что gm удобнее.
Т.е. для набора /gamemode create надо нажимать: /g
У меня чата не работает файл не работает чот