Minecraft Wiki
Advertisement
execute
Ограничения

Оператор

Первое появление

1.8 (14w07a)
PE Alpha 0.16.0 (PE Alpha 0.16.0 build 1)

Выполняет команду с дополнительными функциями.

Java Edition

Использование

Команда /execute разделена на следующие подкоманды:

Подкоманды-модификаторы, которые позволяют изменить способ выполнения команды:
  • /execute as <цель> выполняет команду, исполнителем которой является цель (место выполнения не изменяется).
  • /execute at <цель> выполняет команду так, будто исполнитель имеет такие измерение, позицию и поворот, что и цель (исполнитель не изменяется).
  • /execute positioned <позиция> выполняет команду с указанной позиции.
  • /execute positioned as <сущность> выполняет команду с позиции указанной сущности.
  • /execute align <оси> выполняет команду, подстраивая координаты места её выполнения под сетку блоков (то есть происходит их округление). оси — это комбинация букв x, y и z (например: 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 facing <позиция> выполняет команду так, будто исполнитель смотрит на указанную позицию.
  • /execute facing entity <цель> (eyes|feet) выполняет команду так, будто исполнитель направлен к «ногам» (feet) или «глазам» (eyes) цели.
  • /execute rotated <поворот> выполняет команду так, будто исполнитель имеет указанные углы поворота.
  • /execute rotated as <сущность> выполняет команду так, будто исполнитель имеет углы поворота указанной сущности.
  • /execute in (overworld|the_end|the_nether) выполняет команду так, будто исполнитель находится в указанном измерении.
  • /execute anchored (feet|eyes) выполняет команду так, будто локальные координаты (^ ^ ^) исполнителя закреплены к его «ногам» (feet) или «глазам» (eyes).
Подкоманды-условия, которые могут препятствовать выполнению команды:
  • /execute (if|unless) block <позиция> <блок> выполняет команду, если на указанной позиции найден (при unless — не найден) блок.
  • /execute (if|unless) blocks <начало> <конец> <назначение> (all|masked) выполняет команду, если область между началом и концом идентична (при unless — не идентична) назначению.
  • /execute (if|unless) entity <сущность> выполняет команду, если сущность существует (при unless — не существует).
  • /execute (if|unless) score <цель> <задача-цель> (<|<=|=|>=|>) <source> <sourceObjective> выполняет команду, если счёт цели в задаче-цели соответствует (при unless — не соответствует) счёту source в sourceObjective указанным образом.
  • /execute (if|unless) score <цель> <задача-цель> matches <диапазон> выполняет команду, если счёт цели в задаче-цели содержится (при unless — не содержится) в указанном диапазоне (примеры диапазонов: 1, 1..5, ..3).
Замена команды /stats — подкоманда store позволяет сохранить информацию о выполнении команды:
  • /execute store (result|success)
  • result записывает результат выполнения команды. Заменяет старую статистику: AffectedBlocks, AffectedEntities, AffectedItems, QueryResult.
  • success записывает количество успешных выполнений команды. Заменяет SuccessCount.
  • Значение будет записано, когда вся команда полностью закончит выполнение.
  • Если команда выполнена неуспешно (success равен 0), result будет равным 0.
  • /execute store (result|success) score <цель> <задача>
    • Значение записывается в счёт цели в задаче.
    • задача должна существовать.
    • В отличие от /stats, устанавливать начальное значение цели не нужно.
  • /execute store (result|success) bossbar <ID> (value|max)
    • Значение записывается в текущее (value) или максимальное (max) значение боссбара с указанным ID.
  • /execute store (result|success) block <позиция> <путь> (byte|double|float|int|long|short) <множитель>
    • Значение записывается по указанному пути в NBT-данные блока, располагающегося на указанной позиции, в качестве умноженного на множитель числа с указанным типом.
  • /execute store (result|success) entity <цель> <путь> (byte|double|float|int|long|short) <множитель>
    • Значение записывается по указанному пути в NBT-данные цели в качестве умноженного на множитель числа с указанным типом.
    • Как и /data, команда /execute store не может изменять NBT-данные игроков. NBT-данные по пути «Inventory[индекс].tag» или «EnderItems[индекс].tag» являются исключением и могут быть изменены командой /execute store.
  • Путь выглядит примерно так: foo.bar[0]."Безумное [н а з в а н и е]".baz.
    • foo.bar — потомок тега foo с названием bar.
    • foo[0] — нулевой элемент тега foo.
    • Если название ключа содержит недопустимые символы, необходимо использовать заключённый в кавычки текст.
  • Пример:
    • /execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5] — если в радиусе пяти блоков вокруг свиньи есть игрок, на неё наденется седло.
Подкоманды можно объединять вместе.
  • После каждой подкоманды необходимо вводить другую.
  • Когда перечисление подкоманд завершено, можно ввести аргумент run с командой, подлежащей выполнению.
    • Знак / перед запускаемой командой запрещён.
Примеры
  • /execute as @e run say Привет! — относительно каждой сущности в чате будет написано «Привет!».
  • /execute as @e at @s if block ~ ~-1 ~ stone run say Камень! — относительно каждой сущности, под которой есть блок камня, в чате будет написано «Камень!».

Bedrock Edition

Использование
execute <origin: target> <position: x y z> <command: string>
Следующее использование позволяет выполнить команду только при обнаружении определённого блока:
execute <origin: target> <position: x y z> detect <detectPos: x y z> <detectBlock: string> <detectData: int> <command: string>

Цвет был добавлен для облегчения чтения.

Аргументы
origin: target
Имя игрока или селектор, которого необходимо назначить исполнителем команды. Если указано более одной цели, команда выполнится относительно каждой.
position: x y z
Позиция, с которой выполнится команда. Относительные координаты указываются относительно цели.
command: string
Команда, подлежащая выполнению.
detectPos: x y z
Координаты, на которых идёт поиск блока. Относительные координаты указываются относительно position: x y z.
'detectBlock: string
Идентификатор блока, подлежащего поиску на координатах detectPos: x y z.
detectData: int
Данные блока, подлежащего поиску. -1 — любой тип блока.
Результат
Не выполняется, если неверно указаны аргументы.
Не выполняется, если цель не найдена.
Не выполняется, если определённый блок не найден на указанных координатах.
Не выполняется, если не удалось выполнить команду.
В случае успеха выполняет команду относительно указанной цели со статусом оператора на указанных координатах.
Примеры
Создание такого количества молний на координатах (0, 64, 0), сколько существует криперов на момент выполнения команды:
execute @e[type=creeper] 0 64 0 summon lightning_bolt
Создание молнии на координатах всех существующих на момент выполнения команды криперов, стоящих на любом виде песка:
execute @e[type=creeper] ~ ~ ~ detect ~ ~-1 ~ minecraft:sand -1 summon lightning_bolt
Перемещение всех игроков, у которых в радиусе 10-ти блоков есть крипер, к ближайшему криперу.
execute @e[type=creeper] ~ ~ ~ execute @a[r=10] ~ ~ ~ tp @s @e[type=creeper,c=1]


Advertisement