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

В первую очередь: как отключить разрушение глобально

Самый простой способ - запретить у мобов «griefing» (разрушение окружения).

Java Edition и Bedrock Edition (через настройки мира)

Команда:

/gamerule mobGriefing false

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

Источник: обсуждения и примеры по использованию gamerule для защиты построек (mobGriefing).

Если нужно защитить только часть территории

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

Вариант для Education Edition: блоки «разрешить» и «запретить»

В Education Edition есть специальные блоки, которые ограничивают действия игроков с блоками в области вокруг них. Среди их свойств указано, что они предназначены для запрета/разрешения строительства и разрушения в зоне, при этом при конфликте приоритет имеет блок выше по расположению.

Важно: эти блоки относятся к ограничениям взаимодействия и описаны в контексте Education Edition, а не как универсальная защита от каждого типа моб-нанесения урона.

Что делать:
1. Поставьте блок «запретить» над местом, которое нужно защитить.
2. Если рядом есть области с другими правилами, держите в голове приоритет по высоте.
3. Проверьте поведение в вашем режиме игры.

Источник: описание блоков «разрешить» и «запретить» в Minecraft Wiki.

Если речь про моды или сервер: отмена ломания через плагины/код

На серверах с модами игроки часто хотят точечно запретить ломание конкретного блока (или запретить ломание при определенных условиях).

Примеры подхода для модов (идея)

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

На практике план такой:
1. Найти событие, которое срабатывает при попытке разрушения блока.
2. Проверить тип minecraft блока или контекст (кто разрушает, чем).
3. Отменить событие, если условие не выполнено.

Если вы используете Fabric/Forge и пишете мод, скажите версию Minecraft и загрузчик - подскажу, какие конкретно события и куда встраивать.

Частые ошибки

Ситуация Почему так выходит Что сделать
Поставили gamerule mobGriefing false, но часть разрушения осталась Глобальное правило может не охватывать конкретный случай разрушения в вашей версии/сборке или на сервере включены моды/плагин, которые делают разрушение отдельно Проверьте, что правило действительно применяется на этом сервере/мире. Отключите конфликтующие плагины или ищите обработчики разрушения в модах
Хотите защитить один блок, но используете только gamerule Правило отключает разрушение в целом, а не точечно Делайте защиту зоной (если ваш режим позволяет) или правьте поведение через мод/плагин
Пытаетесь «запретить разрушение» блоком «запретить» в режиме, где его нет Блоки «разрешить/запретить» описаны для Education Edition и могут вести себя иначе или отсутствовать в других режимах Используйте глобальное gamerule или подход через плагины/моды

Итог

  • Если цель - чтобы мобы вообще не ломали постройки, поставьте:
    mcfunction /gamerule mobGriefing false
  • Если нужна защита зоны, ориентируйтесь на возможности вашего режима (в Education Edition подходят блоки «разрешить/запретить»).
  • Если вы на сервере с модами и хотите точечный контроль, обычно используют отмену события разрушения блока через код или плагины.

Полезные ссылки

  • https://ru-minecraft.ru/forum/showtopic-10643/
  • https://minecraft.fandom.com/ru/wiki/%D0%91%D0%BB%D0%BE%D0%BA%D0%B8_%C2%AB%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B8%D1%82%D1%8C%C2%BB_%D0%B8_%C2%AB%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82%D0%B8%D1%82%D1%8C%C2%BB
  • https://forum.mcmodding.ru/threads/zapret-lomanie-blokov.31796/