Hello there! We are conducting a survey to better understand the user experience in making a first edit. If you have ever made an edit on Gamepedia, please fill out the survey. Thank you!

Команды консоли/execute

Материал из Minecraft Wiki
Перейти к: навигация, поиск
execute
Ограничения

Оператор

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

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

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

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

Команда /execute разделена на подкоманды. Подкоманды делятся на три категории:

  • Модификатор: подкоманды, которые позволяют изменить способ выполнения команды. Например, изменить исполнителя и место исполнения команды.
  • Условие: подкоманды, которые могут препятствовать выполнению команды. Например, команда выполнится, если существует определённая сущность.
  • Запись: подкоманды, которые сохраняют результат или успешность исполнения команды.

Команда /execute может содержать неограниченное число подкоманд, кроме подкоманды run <команда>. Эта подкоманда может быть записана лишь один раз в конце всей цепочки подкоманд. Обратите внимание, что нельзя использовать / в начале команды, записанной с run.

Модификатор
Использование
Команда
/execute align <оси>
  • Подстраивает координаты места выполнения команды под сетку блоков (то есть происходит их округление).
Примеры:
/execute positioned -1.8 2.3 5.9 align x run particle flame: создаёт частицу пламени на координатах (−2, 2.3, 5.9)
/execute positioned 2.4 -1.1 3.8 align xyz run particle flame: создаёт частицу пламени на координатах (2, −2, 3)
/execute anchored (feet|eyes)
  • Изменяет точку привязки локальных координат исполнителя ^ ^ ^.
Пример:
/execute at @p anchored eyes run setblock ^ ^ ^4 diamond_block: ставит алмазный блок в 4 блоках впереди от уровня глаз ближайшего игрока.
/execute as <цели>
  • Изменяет исполнителя команды (само место выполнения не изменяется). Если целей несколько, команда выполнится по разу с каждым исполнителем.
Пример:
/execute as @a run say Привет!: выполняется так, будто каждый игрок выполнил команду say Привет! с правами оператора.
/execute at <цели>
  • Изменяет измерение, позицию и поворот выполнения команды на такие же, что у целей (сам исполнитель не изменяется). Если целей несколько, команда выполнится по разу с каждым местом выполнения.
Примеры:
/execute at @p run setblock ^ ^ ^2 diamond_block: ставит алмазный блок впереди ближайшего игрока.
/execute as @a at @p run tp @s ^ ^ ^2: телепортирует всех игроков в точку перед ближайшим игроком.
/execute facing entity <цели> (eyes|feet)
  • Выполняет команду так, будто взгляд исполнителя направлен на указанную точку привязки целей. Если целей несколько, команда выполнится по разу с каждым поворотом исполнителя.
Пример:
/execute as @p at @s anchored eyes facing entity @e[type=cow,limit=1,sort=nearest] eyes run setblock ^ ^ ^5 diamond_block: ставит алмазный блок между «глазами» ближайшего игрока и «глазами» ближайшей к нему коровой в 5 блоках от этого игрока.
/execute facing <позиция>
  • Выполняет команду так, будто взгляд исполнителя направлен на указанную позицию.
Пример:
/execute as @p at @s facing 0 0 0 run setblock ^ ^ ^5 diamond_block: ставит алмазный блок между ближайшим игроком и позицией (0, 0, 0) в 5 блоках от этого игрока.
/execute in (overworld|the_end|the_nether)
  • Изменяет измерение, в котором выполняется команда.
Пример:
/execute as @p in the_nether run teleport 0 64 0: телепортирует ближайшего игрока в Нижний мир на позицию (0, 64, 0).
/execute positioned <позиция>
  • Изменяет позицию выполнения команды на указанную позицию.
Пример:
/execute positioned 0 64 0 run setblock ~ ~ ~ diamond_block: ставит алмазный блок на позицию (0, 64, 0), однако измерение, в котором выполняется команда, сохраняется.
/execute positioned as <цели>
  • Изменяет позицию выполнения команды на такую же, что у целей. Если целей несколько, команда выполнится по разу с позицией каждой цели.
Пример:
/execute positioned as @p run setblock ~ ~ ~ diamond_block: ставит алмазный блок на позицию ближайшего игрока, однако измерение, в котором выполняется команда, сохраняется.
/execute rotated <поворот>
  • Изменяет поворот выполнения команды на указанный поворот.
Пример:
/execute at @p rotated ~30 0 run setblock ^ ^ ^4 diamond_block: ставит алмазный блок впереди ближайшего игрока, будто его поворот головы повёрнут на 30 градусов вправо, а наклон равен 0 градусам.
/execute rotated as <цели>
  • Изменяет поворот выполнения команды на такой же, что у целей. Если целей несколько, команда выполнится по разу с поворотом каждой цели.
Пример:
/execute at @p rotated as @e[type=cow,limit=1,sort=nearest] run setblock ^ ^ ^4 diamond_block: ставит алмазный блок впереди ближайшего игрока, будто его поворот головы такой же, что у ближайшей к нему коровы.
Аргументы
Аргумент Тип Описание Свойства
<оси> Оси Комбинация букв x, y и z. Например: x,xz,zyx, yz.
(feet|eyes) Литерал Точка сущности, к которой привязываются локальные координаты (^ ^ ^):
  • eyes: «глаза»
  • feet: «ноги»
<цели> Селектор
  • Тип: сущности
  • Количество: несколько
(overworld|the_end|the_nether) Литерал Измерение:
  • overworld: обычный мир
  • the_end: Энд
  • the_nether: Нижний мир
<позиция> Координаты
<поворот> Углы Углы поворота и наклона
Условие

Все приведённые ниже подкоманды содержат аргумент (if|unless).

  • if проверяет, является ли условие истинным. Если это так, цепь продолжается дальше.
  • unless проверяет, является ли условие ложным. Если это так, цепь продолжается дальше.

Помимо этого, подкоманды-условия можно использовать для получения возвращаемого значения.

Использование
Команда Возвращаемое значение
result success
/execute (if|unless) block <позиция> <блок>
  • Проверяет соответствие блока на позиции указанному.
Проверка:
if: проверяет нахождение на указанной позиции указанного блока.
unless: проверяет нахождение на указанной позиции любого блока, кроме указанного.
Примеры:
/execute if block 0 64 0 diamond_block run say Алмазный блок!: выводит в чат сообщение, если на координатах (0, 64, 0) найдет алмазный блок.
/execute as @a at @s unless block ~ ~-1 ~ air run say Не воздух!: относительно каждого игрока проверяется наличие воздуха под ним; если его нет, в чат выводится сообщение.
Условие выполнено — 1; иначе — 0. Условие выполнено — 1; иначе — 0.
/execute (if|unless) blocks <начало> <конец> <назначение> (all|masked)
  • Проверяет соответствие области [начало → конец] и области-назначения.
Проверка:
if: проверяет полное соответсвие областей.
unless: проверяет несоответсвие областей.
Пример:
/execute if blocks 0 0 0 10 10 10 20 20 20 masked run say Полное соответствие!: выводит в чат сообщение, если область [(0, 0, 0) → (10, 10, 10)] полностью соответствует области [(20, 20, 20) → (30, 30, 30)].
if: условие выполнено — количество проверяемых блоков; иначе — 0.

unless: условие выполнено — 1; иначе — 0.

Условие выполнено — 1; иначе — 0.
/execute (if|unless) entity <сущность>
  • Проверяет существование сущности в прогруженных чанках.
Проверка:
if: проверяет существование хотя бы одной сущности из указанных.
unless: проверяет несуществование ни одной сущности из указанных.
Пример:
/execute if entity @e[type=cow] run say Корова!: выводит в чат сообщение, если в прогруженных чанках существует корова.
if: условие выполнено — количество найденных сущностей; иначе — 0.

unless: условие выполнено — 1; иначе — 0.

Условие выполнено — 1; иначе — 0.
/execute (if|unless) score <цель> <задача-цель> (<|<=|=|>=|>) <источник> <задача-источник>
  • Проверяет истинность сравнения указанным образом счёта цели в задаче-цели и счёта источника в задаче-источнике.
Проверка:
if: проверяет соответсвие выражения истине.
unless: проверяет соответсвие выражения лжи.
Пример:
/execute if score Alex obj < Steve obj run say Alex < Steve: выводит в чат сообщение, если счёт Alex в задаче obj меньше, чем счёт Steve в той же задаче.
Условие выполнено — 1; иначе — 0. Условие выполнено — 1; иначе — 0.
/execute (if|unless) score <цель> <задача-цель> matches <диапазон>
  • Проверяет вхождение в диапазон счёта цели в задаче-цели.
Проверка:
if: проверяет нахождение счёта в диапазоне.
unless:проверяет нахождение счёта вне диапазона.
Пример:
/execute if score Alex obj matches 1.. run say Натуральное число!: выводит в чат сообщение, если счёт Alex в задаче obj не меньше 1.
Условие выполнено — 1; иначе — 0. Условие выполнено — 1; иначе — 0.
Аргументы
Аргумент Тип Описание Свойства
(if|unless) Литерал Тип условия:
  • if: если …, то
  • unless: если не …, то
<блок> Блок
<позиция>, <начало>, <конец>, <назначение> Координаты
(all|masked) Литерал Метод проверки области:
  • all: проверка соответствия всех блоков.
  • masked: проверка соответствия всех блоков, кроме воздуха.
<сущности> Селектор
  • Тип: сущность
  • Количество: несколько
<цель>, <источник> Счётчик
  • Количество: один
<задача-цель>, <задача-источник> Задача Название задачи для проверки.
(<|<=|=|>=|>) Литерал Оператор, используемый для теста.
<диапазон> Диапазон
Запись
  • result: записывает результат выполнения команды.
  • success : записывает успешность выполнения команды.
  • Если команда выполнена неуспешно (success равен 0), result тоже будет равным 0.
  • Значение будет записано, когда вся команда полностью закончит выполнение.
Использование
Команда
/execute store (result|success) block <позиция> <путь> (byte|double|float|int|long|short) <множитель>
  • Записывает значение по указанному пути в NBT-данные блока-сущности, располагающегося на указанной позиции, в качестве умноженного на множитель числа с указанным типом.
Пример:
/execute store result block 0 65 0 RecordItem.Count byte 1.5 run scoreboard players get Alex obj: предполагая, что на (0, 65, 0) находится проигрыватель, изменяет количество вставленных в него предметов на значение счёта Alex в задаче obj, умноженное на 1,5.
/execute store (result|success) bossbar <ID> (value|max)
  • Записывает значение в текущее или максимальное значение боссбара с указанным ID.
Пример:
/execute store result bossbar foo:bar value run data get entity Alex Health: Записывает значение NBT-тега Health игрока Alex в текущее значение боссбара foo:bar.
/execute store (result|success) entity <цель> <путь> (byte|double|float|int|long|short) <множитель>
  • Записывает значение по указанному пути в NBT-данные цели в качестве умноженного на множитель числа с указанным типом.
  • Эта подкоманда не может изменять NBT-данные игроков. NBT-данные по пути «Inventory[индекс].tag» или «EnderItems[индекс].tag» являются исключением и могут быть изменены.
Пример:
/execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5]: если в радиусе пяти блоков вокруг свиньи есть игрок, на неё наденется седло.
/execute store (result|success) score <цели> <задача>
  • Записывает значение в счёт целей в задаче.
Пример:
/execute store result score Свиней obj if entity @e[type=pig]: записывает в счёт «Свиней» задачи obj количество найденных свиней в прогруженных чанках.
Аргументы
Аргумент Тип Описание Свойства
(result|success) Литерал Тип возвращаемого значение, которое нужно записать:
  • result: результат выполнения команды.
  • susccess: успешность выполнения команды.
<позиция> Координаты
<путь> NBT-путь
(byte|double|float|int|long|short) Литерал Тип записываемого значения. См. Java#Примитивные типы.
<множитель> Вещественное число Множитель возвращаемого значения
<ID> Боссбар Идентификатор боссбара
(value|max) Литерал Тип значения боссбара, в которое нужно записать другое:
  • value: текущее значение
  • max: максимальное значение
<цель> Селектор
  • Тип: сущность
  • Количество: один
<цели> Счётчик
  • Количество: несколько
<задача> Задача

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]