Командний блок

Матеріал з Minecraft Wiki
Перейти до: навігація, пошук
Командний блок
Command Block.gifChain Command Block.gifRepeating Command Block.gif
Conditional Impulse Command Block.gifConditional Chain Command Block.gifConditional Repeating Command Block.gif
Командний блокЛанцюговий командний блокПовторюючий командний блок
Тип

Твердий блок

Прозорість

Ні

Висвітлення

Ні

Діє гравітація

Ні

Вибухостійкість

18.000.000

Міцність

-1

Інструмент

?

Поновлюваний

Ні

Складається

Так (64)

Займистий

Ні

Дроп

Ні

Перші появи

Див. Історію

Номер

dec: ? hex: ? bin: ?

Текстовий
ідентифікатор

command_block

Цей блок буде здатний виконувати команди по сигналу червоного пилюки. З відповідними командами багато речей можуть бути автоматизовані.
Jeb про командний блоці[1]

Командний блок (англ. Command Block) — це блок, який здатний виконувати команди. Цей блок можна отримати без використання читів, тому в основному він використовується на серверах для створення особливих механізмів.

Отримання

Щоб видати себе командний блок, потрібно використовувати команду /give @s command_block (@a-всі гравці, @p-найближчий гравець, @s-ви) або /give Ваш_ник command_block. Щоб відразу поставити командний блок, можна використовувати команду /setblock координати command_block.

Як і інші блоки, цей блок зберігає NBT дані; СКМ+Ctrl буде копіювати командний блок разом з командою і іншими параметрами.

Командні блоки недоступні в інвентарі Творчості і не можуть бути зламані в виживання. Командний блок не горить і не може бути зрушене поршнем.

Використання

Командний блок може виконувати команди консолі, записані в нього, коли активований Редстоун-сигналом. З версії 1.9 може працювати без сигналу (якщо встановлена настройка «Завжди включений» або «Always active»). Він завжди має вищий рівень доступу, а значить, може виконувати всі доступні в грі команди, крім більшості серверних (/stop, /ban, /kick і т.д.), А також /debug, /publish і /reload.

Додавати і змінювати код в командному блоці можна через його інтерфейс (відкривається використанням кнопки «Використовувати предмет» на командному блоці). Гравець може відкрити інтерфейс тільки перебуваючи в режимі Творчості. Для використання командного блоку на сервері, в файлі server.properties повинні бути встановлені наступні значення:

  • enable-command-block повинно мати значення true
  • op-permission-level повинно мати значення 2 и більше (за замовчуванням 4)

На сервері його можуть відкривати тільки гравці зі статусом оператора.

Інтерфейс командного блоку

Командний рядок

Інтерфейс командного блоку
Інтерфейс командного блоку з виконаною командою

Команди вводяться в верхній рядок інтерфейсу. Максимальна кількість символів, що вміщується в одному командному блоці -32 500, але рядок може показувати тільки перші кілька десятків. Прокручувати текст можна за допомогою кнопок і , якщо затиснути Ctrl при прокручуванні, вона значно прискориться. Автопідстановка команд проводиться кнопкою Tab ↹ (приклад: /to + Tab ↹/toggledownfall).

Підстановка символу / перед введенням команди необов'язкова, він не впливає на виконання команди.

Під командним рядком знаходяться підказки по вибору цілей для команд консолі.

Рядок виведення

У нижньому рядку інтерфейсу виводиться останній результат виконання команди даними командним блоком при успішному виконанні, або звіт про помилку при неможливості виконання. Спочатку цей рядок порожній. Текст в ній не редагується гравцем.

Кнопка праворуч від рядка виводу визначає, чи повинен звіт бути збережений і відображений (O коли включено збереження і відображення звіту, і X в зворотному випадку), за замовчуванням — <cpde>O. Командний блок, що відображає звіт і безперервно виконуючий команду, буде постійно оновлюватися. Якщо 64 командних блоку будуть оновлюватися в одному і тому ж Чанкая, відбудеться оновлення цього чанка і, можливо, деяких сусідніх, що може значно знизити кількість кадрів в секунду (FPS) для гравців, тому рекомендується відключати висновок звіту при можливості.

Імпульсний/Ланцюговий/Циклічний

Натиснувши на кнопку «Impulse/Chain/Repeat», командний блок змінить свій тип.

  • Impulse Колір текстури: помаранчевий. Виконує команду лише один раз при активації.
  • Chain Колір текстури: аквамарин (блакитно-зелений). Активується тільки якщо включений, і при цьому активувався перший блок ланцюжка (ланцюжок складається з одного командного блоку типу «Імпульсний» або «Циклічний» і необмеженої кількості блоків типу «Ланцюговий», спрямованих один на одного по ланцюжку). Виконує команду коли до нього доходить черга (якщо попередні командні блоки ланцюжка вже спробували виконати свої команди). Якщо блок, що складається в ланцюжку, виявляється вимкнений, ланцюжок не переривається і наступним свою команду намагається виконати наступний невимкнений блок ланцюжка.
  • Repeat Колір текстури: фіолетовий. Виконує команду кожен ігровий такт (двадцять разів на секунду) поки включений.

Умовний/Безумовний

При натисканні на кнопку «Conditional/Unconditional» змінюється поведінка блоку.

  • Conditional або «Умовний» командний блок буде намагатися виконати команду тільки в разі, якщо остання спроба виконати свою команду стоїть «ззаду» командного блоку була успішною.
  • Unconditional або «Безумовний» командний блок буде виконувати команду при стандартних умовах виконання команди для командних блоків свого типу.

За замовчуванням — «Unconditional».

Потрібен Редстоун-сигнал/Завжди включений

Натиснувши кнопку «Always active/Needs Redstone», можна перемикати залежність командного блоку від сигналу червоного каменю.

  • Needs Redstone: командний блок в цьому режимі не буде виконувати команд, поки не отримає сигнал червоного каменю.
  • Always active: командний блок в цьому режимі не буде вимагати сигналу червоного каменю (буде постійно включеним).

За замовчуванням у імпульсного і циклічного — Needs Redstone, у ланцюгового — Always active.

Прийняти/Скасувати

При натисканні на кнопку «Done» в інтерфейсі командного блоку або кнопку «прийняти» (↵ Enter) клавіатури, той закривається і зберігає всі внесені в нього зміни.

При натисканні на кнопку «Cancel» в інтерфейсі командного блоку або кнопку «скасувати» (Esc) клавіатури, той закривається без збереження внесені в нього зміни.

Збір інформації з командного блоку

Є кілька способів зібрати дані з командного блоку після його спроби виконати команду:

Компоратор

Якщо поставити компаратор лицьовою стороною від командного блоку, він буде видавати сигнал з силою, що відповідає успішності виконання команди (0/1 — «не вдалося виконати»/«виявилась успішною» відповідно або 0-15 — знайдено відповідну кількість сутностей/блоків, які відповідають команді. Якщо таких більше 15, видається максимальний (сила 15) сигнал).

Компаратор видає сигнал, відповідний результату крайнього виконання команди, навіть якщо після цього командний блок був вимкнений.

Повідомлення

Виведені командним блоком повідомлення повідомляють про успішне виконання команди або про неможливість її виконання. Звіти командних блоків з'являються в наступних місцях:

Рядок виведення

Протокол крайнього виконання команди знаходиться в рядку виводу, яку можна побачити, відкривши інтерфейс самого командного блоку, якщо висновок не був відключений.

Чат

Повідомлення про результат виконання команди командним блоком надсилаються в чат гравцеві в одиночній грі і операторам сервера в мережевий, якщо раніше не була прописана команда /gamerule commandBlockOutput false. Деякі команди спрямовані на написання тексту в чат (/me, /say і /tell). На такий текст вищевказана команда не діє.

Журнал сервера

Повідомлення про результат виконання команди командним блоком записуються в журнал (лог) сервера, якщо не була прописана команда /gamerule logAdminCommands false.

Статистика командного блоку

Командні блоки можуть записувати різні результати успішного виконання команд в списки завдань, такі як:

  • SuccessCount: кількість успішних виконань (по аналогії з компаратором см. Збір інформації з командного блоку, але не обмежена значенням 15).
  • AffectedBlocks: кількість блоків, на які вплинула команда.
  • AffectedEntities: кількість сутностей, на які вплинула команда.
  • AffectedItems: кількість предметів, на які вплинула команда.
  • QueryResult: значення, повернений командою.

Цілі, які необхідно відстежувати, можна вказати, виконавши команду /stats або безпосередньо змінивши дані NBT-тега командного блоку за допомогою команди /blockdata.

Керівництво

Покажчик на сутність може мати прив'язку до конкретного типу сутності. Задається ця прив'язка аргументом

  • type — Як приклад, команда /kill @e[type=Skeleton] вб'є всіх скелетів, а команда /kill @e[type=!Player] вб'є всі сутності, які не є гравцем.

Також якщо командний блок перейменувати на ковадлі і ввести в нього команду /say, тпро при активації в чат виведеться вписане повідомлення. Але перед повідомленням замість символу @ з'явиться ім'я, яке було дано командному блоку.

Також були помічені особливості, в розташуванні командних блоків і порядком виконання команд, при підключенні декількох блоків до одного джерела живлення:

Ось розташування командних блоків щодо сторін світла:

Значення

ID блоку

Блок Назва ID блоку/предмету
Командний блок minecraft:command_block 137
Циклічний командний блок minecraft:repeating_command_block 210
Ланцюговий командний блок minecraft:chain_command_block 211


Нумерація даних

Байти Значення
0x1 Встановлюється, якщо командний блок був активований раніше.
0x2
0x4
0x8
(Не використовується)


Стан блоку

Назва Значення Опис
 conditionaltrue
false
true, якщо командний блок знаходиться в умовному режимі.
 facingnorth
south
east
west
up
down
Напрямок, куди вказує командний блок.


Галерея

Історія

Java Edition
27 липня 2012 Джеб в своєму твіттері опублікував інформацію про блок, призначеному для режиму Пригоди. Він почав розміщувати ідеї, фотографії та натяки на ті функції, які блок буде виконувати.
Під час AMA Нотч натякнув, що блок буде додано до 1.4.
1.4 12w32a Командний блок був доданий в гру.
12w38a Був доданий розширений синтаксис вказівки мети.
1.7.2 13w37a З'явилася можливість ставити блоки за допомогою команди /setblock.
13w39a Була додана вагонетка з командним блоком.
Можлива помилка з тим, що командний блок не побачить компаратор.
1.8 14w07a Роздавальники можуть встановлювати командні блоки.
1.9 15w34a Була перероблена текстура командного блоку. Тепер командний блок можна налаштувати на виконання трьох функцій: Impulse (активує командний блок), Chain (активує командні блоки по ланцюжку) і Repeat (повторює задану команду кілька разів на секунду, не зупиняючись). Командні блоки також мають напрямок, як і поршні.
15w34b Додані дві нові функції: Умовна і Безумовна. При функції «Умовна» командний блок виконає команду тільки якщо команда попереднього блоку була успішно виконана.
15w35a Impulse Command Block.png Chain Command Block.png Repeating Command Block.png Знову оновлені текстури командного блоку. Додані нові опції для командного блоку: Завжди активний і/або потребує налаштуваннях червоного каменю.
1.12 17w16a Покращена продуктивність у ланцюгового командного блоку.
17w18a Проведена оптимізація помилкових умов в командних блоках.
1.12-pre6 Автозавершення команди за допомогою Tab ↹ в командних блоках більше не додає / перед командою.
1.13 18w21a Змінений колір підказки у командного блоку і його різновидів.
1.13-pre1 Виправлена помилка, яка говорить, що "Завершення табуляції команд в командних блоках не працює".
Заплановані версії Java Edition
1.14 18w47b Змінено текстури командного блоку і циклічного командного блоку.
Pocket Edition
1.0.5 build 1 Командний блок доданий в гру.
Bedrock Edition
1.8 Командний блок тепер має ім'я за замовчуванням «!» замість «@».

Помилки

Питання, що стосуються «Командний блок», ведуться в сховищі звітів про помилки. Повідомте про проблеми там.

Цікаві факти

  • Якщо під час пересування на вагонетці зайти в командний блок, то минувши кілька блоків, ви автоматично вийдіть з нього.
  • Командний блок з командою /kill @p, який активується при натисканні на важіль, кнопку або натискну пластину, часто можна зустріти на картах на проходження, і гравці нерідко називають його смертоблоком за аналогією зі смертоблокамі з гри AVGN Adventures, дотик до яких миттєво вбивало персонажа.

Примітки