Система приоритета объявлений
Система приоритета объявлений управляет тем, насколько важны сообщения 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'