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

Система приоритета объявлений

Система приоритета объявлений управляет тем, насколько важны сообщения EliteMobs. Она используется Кастомными боссами (сообщения о спавне / смерти / побеге и отслеживание) и Кастомными событиями (startMessage / endMessage).

Эти два случая используют разные пути в коде и ведут себя по-разному на приоритете 2 — см. Кастомные события используют другой путь внизу этой страницы.

Краткая шпаргалка:

  • Уровень 0: Без публичных объявлений; настроенные сообщения о смерти видят только нанёсшие урон
  • Уровень 1: Настроенные сообщения в чат + отслеживание при включённом showCustomBossLocation
  • Уровень 2: Идентичен Уровню 1 для Кастомных боссов (отдельного поведения нет)
  • Уровень 3: Возможности Уровня 1 + объявления в Discord (требуется DiscordSRV)

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

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

Уровень 0​

Отключает публичные объявления кастомного босса. Это означает:

  • Сообщения о спавне не будут отправляться
  • Сообщения о побеге не будут отправляться
  • Сообщения о смерти отправляются ТОЛЬКО игрокам, нанёсшим урон боссу (не по всему серверу)
  • Отслеживание босса отключено, даже если настроен locationMessage

Уровень 1​

Одни сообщения не включают публичные объявления

Если пропустить announcementPriority, босс использует приоритет 0, даже при настроенных сообщениях. Сообщения о смерти по-прежнему могут отправляться лично игрокам, нанёсшим урон. Установите announcementPriority: 1 или выше для публичных объявлений.

Кастомный босс сможет отправлять сообщения в чат, если он настроен на это. Он будет отправлять сообщения о спавне, смерти и побеге, если они для него настроены.

По умолчанию сообщения о спавне транслируются всем игрокам на сервере. Чтобы ограничить их миром босса, включите настройку объявлений только в мире события в events.yml (announcementBroadcastWorldOnly: true).

Отслеживание также включается на этом уровне при активном showCustomBossLocation. При появлении босса игроки в его мире получают кликабельное уведомление об отслеживании; также доступно меню /em. locationMessage настраивает текст отслеживания, но не является обязательным.

Требования для отслеживания​

Чтобы отслеживание босса работало на Приоритете 1 или 2, должно быть настроено следующее:

  • Задайте announcementPriority равным 1 или выше
  • При желании задайте locationMessage для изменения текста; при отсутствии или пустом значении используется $name: $distance blocks away!
  • Убедитесь, что в конфигурации сервера включён showCustomBossLocation (по умолчанию: true)

locationMessage может включать плейсхолдеры:

  • $name — показывает имя босса
  • $distance — показывает расстояние до навигационной цели
  • $location — показывает координаты навигационной цели

В одном мире навигационная цель — сам босс. Между мирами отслеживание может указывать на вход прямого соединения через червоточину; если такого соединения нет, отображается настроенное сообщение для другого мира.

Уровень 2​

Для Кастомных боссов Уровень 2 ведёт себя идентично Уровню 1 — отдельного пути в коде для приоритета 2 нет. Каждый тип сообщения подчиняется тем же правилам на приоритете 1 и приоритете 2:

  • Сообщения о спавне транслируются по всему серверу, если не задано announcementBroadcastWorldOnly: true, в этом случае они отправляются только игрокам в мире босса.
  • Сообщения о смерти транслируются по всему серверу при любом приоритете 1 или выше.
  • Сообщения о побеге всегда отправляются только игрокам в мире босса при любом приоритете 1 или выше.

Отслеживание также включается на этом уровне при активном showCustomBossLocation.

Примечание: для отслеживания нужны приоритет объявлений не ниже 1 и showCustomBossLocation; locationMessage необязателен.

Уровень 3​

Кастомный босс будет вести себя так же, как на Уровне 1, и дополнительно будет отправлять сообщения в комнату Discord, настроенную для отправки уведомлений о EliteMobs. Страницу с инструкцией по настройке этой функции можно найти здесь. Сообщения в Discord будут такими же, как сообщения в чате — спавн/смерть/побег

Кастомные события используют другой путь​

У кастомных событий (customevents/*.yml) тоже есть announcementPriority, но их startMessage и endMessage проходят через другую, более простую процедуру. Её поведение таково:

ПриоритетКуда уходит сообщениеDiscord
0Только игрокам в мире событияНет
1По всему серверу, если в events.yml не задано announcementBroadcastWorldOnly: true — в этом случае только в мир событияНет
2Только игрокам в мире события (ветка трансляции по всему серверу написана ровно под приоритет 1)Нет
3+Только игрокам в мире событияДа

То есть для событий — в отличие от боссов — приоритет 2 не то же самое, что приоритет 1, а приоритеты 3 и выше не транслируют по всему серверу, даже когда announcementBroadcastWorldOnly равен false. announcementPriority для событий по умолчанию равен 0.

Типы сообщений​

У кастомных боссов может быть три типа объявлений:

  • Сообщения о спавне (spawnMessage) — отправляются при спавне босса
  • Сообщения о смерти (deathMessage) — отправляются при убийстве босса
  • Сообщения о побеге (escapeMessage) — отправляются при исчезновении/побеге босса

Каждый тип сообщения должен настраиваться отдельно в файле вашего босса. Уровень приоритета объявлений определяет, отправляются ли эти сообщения и кто их получает.

Для сообщений о смерти босса также нужен включённый doCustomEliteMobsDeathMessages в MobCombatSettings.yml (по умолчанию true). Непустой список deathMessages имеет приоритет над одиночным полем deathMessage. Строки рейтинга без соответствующего атакующего пропускаются.

Плейсхолдеры зависят от поля. locationMessage поддерживает $name, $distance и $location. Сообщения о спавне и побеге не заменяют $name; впишите имя босса напрямую. Одиночное поле deathMessage поддерживает $players и $playersName, а рейтинговые плейсхолдеры $damager1name/$damager1Name относятся к списку deathMessages.

Пример конфигурации​

# Silent boss - only damagers see death message
announcementPriority: 0
deathMessage: '&cThe Sentinel has been defeated!'

# Chat announcements with tracking
announcementPriority: 1
spawnMessage: '&4The Sentinel &chas spawned!'
deathMessages:
- '&aThe Sentinel &2has been slain by $damager1Name!'
escapeMessage: '&eThe Sentinel &6has escaped!'
locationMessage: '&6$name &eis $distance blocks away at $location'

# Discord integration
announcementPriority: 3
spawnMessage: '&4The Sentinel &chas spawned!'
locationMessage: '&6Track $name at $location'