Отключение урона от взрывов
Сравнение методов
Выбирайте защиту по пути нанесения урона. Обычные взрывы сущностей/снарядов используют EntityExplodeEvent; флаг WorldGuard EliteMobs очищает список блоков события для отслеживаемых элит/снарядов. Симулируемые взрывы и скрипты могут менять блоки напрямую. Регенерация восстанавливает зарегистрированный ущерб, а не обеспечивает общую защиту.
Отключение урона по блокам
С помощью gamerule
/gamerule mobGriefing false управляет ванильным разрушением мира мобами. Прямые изменения блоков плагином или скриптом оно не перехватывает.
С помощью WorldGuard
Установите EliteMobs и WorldGuard и задайте в регионе elitemobs-explosion-block-damage: deny. Это защищает описанный выше путь отслеживаемых обычных взрывов. Произвольные изменения блоков Lua/EliteScript не перехватываются; защита также не распространяется на все вызовы симулируемых взрывов. Проверьте конкретную способность в защищённой области.
Запрет огненным шарам EliteMobs повреждать блоки
Встроенные способности — Lua-скрипты в plugins/EliteMobs/powers/. Их записи в реестре повторно применяются после обнаружения пользовательских способностей, поэтому YAML-файл метаданных с isEnabled: false не отключает встроенную способность. Удалите нежелательные способности из определений боссов и списков естественного появления в EliteMobPowers.yml. Для пользовательской Lua-способности метаданные YAML с тем же базовым именем могут отключить загрузку; см. отдельные Lua-способности. Чтобы оставить взрывную способность активной и защитить местность, выбирайте защиту по её механизму: обычный взрыв отслеживаемого снаряда или прямое изменение блоков.
Настройка восстановления после взрывов EliteMobs
Измените plugins/EliteMobs/config.yml. При включённой по умолчанию регенерации зарегистрированные блоки начинают восстанавливаться примерно через минуту; исключения и региональные флаги сохраняют силу.
Когда обработчик берёт на себя взрыв элитника, отслеживаемого снаряда или фальшивый взрыв, EliteMobs сам удаляет блоки и очищает список блоков исходного взрыва, поэтому разрушаются только записанные им блоки. Плагин, отменяющий EliteExplosionEvent, отменяет разрушение блоков всем взрывом.
Восстановление идёт по одному блоку за тик, начиная с самых нижних. Сущность, стоящая внутри восстанавливаемого блока, поднимается на его верх; если этот путь перекрыт, восстановление ждёт и пробует снова на следующем тике. При выгрузке мира EliteMobs сначала сразу восстанавливает все ожидающие блоки; если часть из них всё равно нельзя поставить, выгрузка отменяется. Инстансовые миры подземелий, которые удаляются, пропускают этот шаг.
doExplosionRegen: Укажитеfalse, чтобы отключить этот обработчик регенерации. Обычные взрывы всё ещё могут разрушать блоки без восстановления. Симулируемые или скриптовые взрывы через этот обработчик завершаются до прямого удаления блоков.doRegenerateContainers: Укажитеfalse, чтобы исключать контейнеры из взрывов, которые берёт на себя обработчик: тогда они не разрушаются и не восстанавливаются. Если обработчик не задействован, например приdoExplosionRegen: falseили флагеelitemobs-explosion-regenсо значениемdeny, обычные взрывы всё ещё могут разрушать контейнеры.
Прочие способности взрывов/огня
EliteMobs поставляется с несколькими другими способностями, вызывающими взрывы или огонь. Это Lua-скрипты в папке plugins/EliteMobs/powers/:
Способности Дракона Края:
ender_dragon_aimed_fireball.luaender_dragon_disco_fireballs.luaender_dragon_fireball_bombardment.luaender_dragon_ender_fireball_bombardment.lua
Прочие способности взрывов:
gold_explosion.luaarrow_fireworks.luafireworks_barrage.lua
Способности на основе огня:
firestorm.luaflame_pyre.luaflamethrower.luaattack_fire.lua
Изучите скрипт каждой способности перед выбором правила защиты. Регенерация не предотвращает первоначальное разрушение блоков, а изменение одной способности не меняет другие скрипты с похожими эффектами.
Региональное управление взрывами (требуется WorldGuard)
Установите оба плагина и создайте регион WorldGuard, покрывающий область. Для отслеживаемых обычных взрывов выполните:
/region flag <region-name> elitemobs-explosion-block-damage deny
Устранение неполадок
Проверьте, использует ли способность обычное событие или меняет блоки напрямую. Для обычного события проверьте границы региона, запрет флага и загрузку обоих плагинов. При отсутствии восстановления проверьте doExplosionRegen, флаги регенерации и исключения контейнеров. Успешное восстановление не доказывает предотвращение разрушения.