Перейти к основному содержимому

Мирное знамя

Мирное знамя — создаваемый предмет, который подавляет обычное естественное преобразование мобов в элит в настраиваемом радиусе чанков. При suppressEvents: true оно также подавляет события действий и попытки появления мобов событий по таймеру, обрабатываемые EliteMobs. Оно не блокирует произвольное появление пользовательских или региональных боссов, не удаляет существующих элит и не даёт общей защиты от мобов.

Как это работает​

  1. Крафт: Игроки создают Мирное знамя по стандартному рецепту (или по настраиваемому рецепту, сконфигурированному администратором). Стандартный рецепт требует кости, окружающие знамя любого цвета.
  2. Размещение: При включённой функции размещение Мирного знамени немедленно регистрирует защиту. Стандартный радиус 4 охватывает квадрат 9×9 чанков с центром в чанке знамени на любой высоте; это не круг, отсчитываемый от блока.
  3. Удаление: Разрушение блока Мирного знамени убирает защитную зону и снова позволяет элитным мобам появляться в этой области.
  4. Сохранение: Размещённые Мирные знамёна сохраняются на диск и сохраняются между перезапусками сервера. Когда чанки, содержащие Мирное знамя, загружаются, плагин проверяет, что блок знамени всё ещё существует, и удаляет защиту, если он был уничтожен другими способами.

Стандартный рецепт крафта​

BBB
BWB
BBB
  • B = Кость
  • W = Любое знамя (принимаются все 16 цветов знамён)

Рецепт производит синее знамя с особым узором, отображаемым именем и описанием, идентифицирующим его как Мирное знамя.

Конфигурация​

Все настройки Мирного знамени находятся в PeaceBanner.yml. Полный справочник см. на странице настройки конфигурации.

НастройкаПо умолчаниюОписание
enabledtrueВключена ли функция Мирного знамени
craftabletrueМогут ли игроки создавать Мирные знамёна
chunkRadius4Радиус (в чанках) вокруг размещённого знамени, где элитные мобы подавляются
suppressEventstrueПодавляют ли размещённые знамёна также события EliteMobs (события действий и таймерные события)
recipeShapeBBB / BWB / BBBРаскладка сетки крафта
recipeIngredientsB: BONE, W: ANY_BANNERСопоставление символов рецепта с материалами
itemName&aPeace BannerОтображаемое имя предмета Мирного знамени
itemLore(см. конфиг)Строки описания, отображаемые на предмете
placedMessage(см. конфиг)Сообщение, отправляемое при размещении знамени
removedMessage(см. конфиг)Сообщение, отправляемое при разрушении знамени

chunkRadius берётся при размещении каждого знамени и сохраняется вместе с ним. Изменение настройки не меняет радиус существующих знамён даже после перезапуска; разместите их заново, чтобы применить новый радиус. В стандартном описании предмета указана буквальная 4, которая не меняется вместе с радиусом, тогда как placedMessage заменяет $radius.

enabled: false отключает подавление появления, обработку размещения, разрушения и загрузки, а также рецепт крафта. Это не удаляет сохранённые записи и не запрещает команду выдачи администратора. craftable: false отключает только рецепт.

Команды администратора​

КомандаРазрешениеОписание
/em peacebanner give <player>elitemobs.peacebanner.adminВыдаёт Мирное знамя игроку в сети; при полном инвентаре роняет его в позиции игрока
/em peacebanner listelitemobs.peacebanner.adminПоказывает список всех размещённых Мирных знамён с их координатами и радиусом чанков

Перекрывающиеся знамёна​

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

Технические детали​

  • При новом размещении Мирное знамя распознаётся по тегу контейнера постоянных данных (PDC) предмета, а не по внешнему виду. Обычное знамя в незарегистрированном месте не создаёт защиту.
  • Данные знамён хранятся в plugins/EliteMobs/data/peace-banners.yml.
  • При загрузке чанка проверяется только наличие любого блока знамени в сохранённой позиции. Тег и узор Мирного знамени повторно не проверяются. Если там больше нет знамени, например после взрыва или редактирования мира, защита снимается при этой проверке, а не сразу после внешнего изменения.
  • Сохранённые записи привязаны к UUID мира. Записи мира, не загруженного во время инициализации EliteMobs, остаются неактивными до загрузки этого мира, после чего их защита включается автоматически. Другой мир с тем же названием их не наследует; вместо этого EliteMobs выводит предупреждение в лог.