- Убедитесь, что ломается именно прочность
- Вариант 1. Сделать предмет неубиваемым через максимальную прочность
- Вариант 2. Чтобы в выживающем режиме предметы не ломались, а в креативе - ломались/не выдавались
- Вариант 3. Серверный подход (Bukkit/Spigot/Paper): отменять поломку и заменять урон
- Мини-сценарии под вашу задачу
- Типичные ошибки
- Полезные ссылки
Игрок часто хочет два разных результата: чтобы предметы не теряли прочность при использовании, или чтобы в режиме выживания не ломались, а в креативе это работало иначе. Ниже - самые рабочие варианты для сервера и для одиночной игры.
Убедитесь, что ломается именно прочность
Прочность падает у инструментов и брони, когда вы:
- бьете мобов или ломаете блоки,
- получаете урон (у брони),
- используете предметы, у которых есть ресурс.
Если вам нужно отключить поломку, нужен контроль прочности или полное “поглощение” урона.
Вариант 1. Сделать предмет неубиваемым через максимальную прочность
Самый простой путь - создать предмет с очень большой прочностью. Идеально подходит, если вы управляете предметами через команды.
Как сделать почти “бесконечные” инструменты
Команда /give позволяет задать NBT для предмета. Для Java-версии можно выставлять Unbreakable.
Пример (для инструмента):
/give <игрок> minecraft:diamond_pickaxe{Unbreakable:1b} 1
Для брони:
/give <игрок> minecraft:diamond_helmet{Unbreakable:1b} 1
Если вам нужен вариант именно через большой запас прочности, в моддинге/датапаках это обычно делается настройкой атрибутов или правкой предмета, но в ванильных командах чаще используют Unbreakable.
Важно про режимы
Unbreakable работает всегда - и в креативе, и в выживаниях. Если вы хотите разное поведение по режимам, смотрите варианты 2 и 3.
Вариант 2. Чтобы в выживающем режиме предметы не ломались, а в креативе - ломались/не выдавались
Это обычно делают правилами выдачи и очистки инвентаря при смене режима.
Шаги
- При входе игрока в креатив держите предметы “в креативной” форме, либо вообще запрещаете открывать выдачу ценных вещей.
- При переключении в выживание заменяйте нужные предметы на “неубиваемые”.
- В конце чистите старые предметы, чтобы игрок не сохранил “обычные” экземпляры.
Команды, на которые можно опереться
Команда /give - базовый инструмент для выдачи предметов с нужными тегами. Подробности по синтаксису есть в вики Minecraft:
- /give <игрок> <предмет> [количество] ... (Java Edition)
- использование NBT-тегов через аргументы предмета.
Источник: Minecraft Wiki - оператор /give
https://minecraft.fandom.com/ru/wiki/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B4%D1%8B_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8/give
Вариант 3. Серверный подход (Bukkit/Spigot/Paper): отменять поломку и заменять урон
Если у вас сервер на Paper/Spigot и нужны тонкие правила, чаще всего применяют плагин. В сообществе встречаются решения:
- отключить ломание брони о блоки (например, о лаву),
- запретить поломку выбранного типа предметов или блоков,
- перехватить события, когда происходит уменьшение прочности.
В качестве ориентира по тому, как именно решают отключение поломки брони, полезны обсуждения на rubukkit:
- “Нужно отключить ломание брони об лаву”
https://rubukkit.org/threads/nuzhno-otkljuchit-lomanie-broni-ob-lavu.190563/
Для случаев “запретить ломать определенный блок” обычно делают защиту от нанесения урона/ресурсообмена (по ситуации через события взаимодействия и разрушения блоков):
- “Как запретить ломать определённый блок”
https://rubukkit.org/threads/kak-zapretit-lomat-opredeljonnyj-blok.136934/
Мини-сценарии под вашу задачу
| Цель | Что сделать | Где лучше применять |
|---|---|---|
| В принципе не ломать инструменты и броню | Выдавать предметы с Unbreakable:1b |
одиночная игра, админ-команды, датапаки |
| В выживании предметы не ломаются, в креативе - иначе | Переключать набор предметов по режиму: очистка + выдача нужного | сервер, командные блоки, датапаки |
| Ломается только при определенных ситуациях (например, “об лаву”) | Плагин: запретить обработку урона/прочности в нужных событиях | Paper/Spigot/PUG-сервер |
Типичные ошибки
- Пытаться “отключить ломание” командой без тега предмета. Ванильные команды сами по себе не отключают механику прочности глобально. Обычно нужен
Unbreakableили скрипт/плагин. - Забыть, что игрок мог получить обычный экземпляр до включения правил. Тогда “неубиваемые” заменят не всё - поможет очистка/перевыдача.
- Смешивать “не ломается при использовании” и “не падает прочность от получения урона”. Для брони это разные механики, а значит и решения разные: либо
Unbreakable, либо перехват урона на сервере.
Полезные ссылки
- Minecraft Wiki - команда
/giveи NBT-теги предметов: https://minecraft.fandom.com/ru/wiki/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B4%D1%8B_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8/give - Обсуждение отключения ломания брони о лаву (Paper/Spigot контекст): https://rubukkit.org/threads/nuzhno-otkljuchit-lomanie-broni-ob-lavu.190563/
- Обсуждение запрета ломания определенного блока (событийный подход): https://rubukkit.org/threads/kak-zapretit-lomat-opredeljonnyj-blok.136934/