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

Матеріал з Minecraft Wiki
Перейти до: навігація, пошук
execute
Обмеження

Оператор

Перша поява

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

Виконує команду з додатковими функціями.

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]

Історія

Java Edition
1.814w07aДодана команда /execute.
14w08aКоманди запускаються з використанням /execute коли передається їх значення успіху назад в командний блок, який їх запускає.
1.1116w32aДодана підтримка стану блоку в /execute.
1.1317w45aСинтаксис /execute був виділений.
17w45bПереработаний /execute store.
18w02aДодані нові підкоманди до /execute щоб забезпечити більший контроль над командами.
18w05aДоданий /execute store.
1.1418w43aДоданий /execute (if|unless) data.
1.1519w38aДоданий /execute if predicate.
Доданий /execute store storage.
Pocket Edition Alpha
0.16.0build 1Додана команда /execute.
Функціональність майже еквівалентна використанню Java Edition 1.10, за винятком того, що мета об'єкта є необов'язковою в /execute.