Чтобы создать блок-пломбу для инструмента, нужен не “особый предмет”, а правило, какие блоки он может ломать. В ваниле это делается через команду /give: вы выдаёте предмет с параметрами CanDestroy (и, при необходимости, ограничением на размещение через CanPlaceOn).
Что именно можно ограничить
Ограничение работает так:
- CanDestroy - какие блоки предмету разрешено ломать
- CanPlaceOn - где предмет можно ставить (полезно для блоков, которые являются “основанием”)
Если в CanDestroy нет нужного блока, предмет будет вести себя обычным образом или не сможет корректно добывать блок, в зависимости от типа предмета и версии игры.
Вариант 1. Выдать инструмент или блок, который ломает только выбранные блоки (Java Edition)
Шаг 1. Найдите ID блоков, которые вы хотите разрешить
Например:
- кварцевый блок: minecraft:quartz_block
- земля (как пример для CanPlaceOn): minecraft:dirt
ID можно сверить в вики по нужным блокам.
Шаг 2. Составьте команду /give с CanDestroy
Общий вид команды для примера с блоком:
/give @a minecraft:diamond_block{CanPlaceOn:["minecraft:dirt"],CanDestroy:["minecraft:quartz_block"]}
Смысл:
- minecraft:diamond_block - выдаваемый предмет
- CanPlaceOn - куда этот блок можно ставить
- CanDestroy - какие блоки он будет ломать
Этот же принцип применяется, когда вы задаёте список блоков. Можно перечислять несколько значений в массиве.
Шаг 3. Уточните, кому выдавать и сколько
Для одиночного игрока:
/give Steve minecraft:diamond_block{CanDestroy:["minecraft:quartz_block"]}
Для всех:
/give @a minecraft:diamond_block{CanDestroy:["minecraft:quartz_block"]}
Вариант 2. Если вы хотите “секретный” предмет под конкретные правила
Иногда нужно не только ограничить ломание, но и запретить лишние действия (например, чтобы предмет не выбросили). Для этого есть теги item_lock.
Примеры (Java Edition):
- предмет нельзя сдвинуть из слота:
/give @r wooden_shovel 1 0 {"item_lock":{"mode":"lock_in_slot"}}
- предмет нельзя выбросить и создавать с ним:
/give @s iron_axe 1 0 {"item_lock":{"mode":"lock_in_inventory"}}
Это не управляет ломанием напрямую, но помогает удержать предмет только в нужном виде на сервере или в карте.
Таблица: какие теги отвечают за что
| Задача | Какой тег использовать | Где указывать | Пример |
|---|---|---|---|
| Разрешить ломать только выбранный блок | CanDestroy |
в данных предмета в команде /give | {CanDestroy:["minecraft:quartz_block"]} |
| Разрешить ставить на выбранные поверхности | CanPlaceOn |
в данных предмета в команде /give | {CanPlaceOn:["minecraft:dirt"]} |
| Запретить перемещение предмета | item_lock (lock_in_slot) |
в данных предмета | {"item_lock":{"mode":"lock_in_slot"}} |
| Запретить выбрасывание и использование для создания | item_lock (lock_in_inventory) |
в данных предмета | {"item_lock":{"mode":"lock_in_inventory"}} |
Типичные ошибки
- Путают CanDestroy и CanPlaceOn.
CanPlaceOn про размещение, CanDestroy про ломать. - Ставят неверный ID блока.
Один лишний символ, и правило не сработает. - Думают, что это ограничит “в целом всё ломание”.
Работает именно в рамках параметров предмета. Если вы выдаёте не тот тип предмета, эффекта может быть меньше или он будет другим. - Проверяют не на том клиенте/сервере и не на той версии.
Синтаксис и поддержка тегов зависят от издания и версии.
Полезные ссылки
- Minecraft Wiki (команда
/give, аргументы и примеры, в том числеCanPlaceOnиCanDestroy): https://minecraft.fandom.com/ru/wiki/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8/give