公告优先级系统
公告优先级系统用于管理 EliteMobs 消息的重要程度。它被自定义 Boss(生成 / 死亡 / 逃脱消息以及追踪)和自定义事件(startMessage / endMessage)所使用。
这两者走的是不同的代码路径,并且在优先级 2 上表现不同 —— 参见本页底部的自定义事件走的是另一条路径。
简明速查表:
- 等级 0:静默(未配置任何消息的 Boss 的默认值)——仅造成伤害者能看到死亡消息
- 等级 1:聊天消息 + 追踪(如果配置了 messages/locationMessage)
- 等级 2:对于自定义 Boss 而言与等级 1 完全相同(没有单独的行为)
- 等级 3:等级 1 的功能 + Discord 公告(需要 DiscordSRV)
工作原理:
注意:如果你想使用非默认值,需要为你的自定义 Boss 配置这个优先级系统。点击 这里 了解如何操作。
等级 0
强制自定义 Boss 保持静默。这意味着:
- 不会发送任何生成消息
- 不会发送任何逃脱消息
- 死亡消息 仅 发送给对 Boss 造成过伤害的玩家(而非全服务器)
- 即使配置了 locationMessage,Boss 追踪也会被禁用
等级 1
announcementPriority 的 Boss 是静默的如果你完全不设置 announcementPriority,那么无论该 Boss 是否配置了生成、死亡或逃脱消息,它都会取得优先级 0 —— 也就是静默。仅仅配置好消息是不够的;你还必须设置 announcementPriority: 1(或更高)。这一点坑住了大量内容:消息明明写了,也能正常解析,却从来不会被广播出去。
如果自定义 Boss 被配置为发送消息,它就能在聊天中发送消息。如果配置了生成、死亡和逃脱消息,它就会发送这些消息。
默认情况下,生成消息会向服务器上的所有玩家广播。你可以在 events.yml 中启用 “Only broadcast event message in event worlds” 设置(announcementBroadcastWorldOnly: true),将 EliteMobs 配置为仅向与 Boss 处于同一世界的玩家广播。
如果配置了 locationMessage,该等级也会启用 Boss 追踪。Boss 生成时玩家可以点击聊天来追踪它,或者使用 /em 菜单来追踪它。
追踪要求
要在优先级 1 或 2 下使 Boss 追踪生效,必须配置以下内容:
- 将
announcementPriority设置为 1 或更高 - 在你的自定义 Boss 配置中添加
locationMessage字段 - 确保服务器配置中启用了
showCustomBossLocation(默认值:true)
locationMessage 可以包含占位符:
$distance- 显示到 Boss 的距离$location- 显示 Boss 坐标
等级 2
对于自定义 Boss,等级 2 的行为与 等级 1 完全相同——优先级 2 没有单独的代码路径。每种消息类型在优先级 1 和优先级 2 下都遵循相同的规则:
- 除非设置了
announcementBroadcastWorldOnly: true,否则生成消息会向全服务器广播;若设置了该项,则只发送给 Boss 所在世界的玩家。 - 对于优先级 1 或更高的任何级别,死亡消息都会向全服务器广播。
- 对于优先级 1 或更高的任何级别,逃脱消息始终只发送给 Boss 所在世界的玩家。
如果配置了 locationMessage,该等级也会启用 Boss 追踪。
注意:追踪同时需要公告优先级为 1 或更高 以及 已配置的 locationMessage 字段。
等级 3
自定义 Boss 的行为与等级 1 相同,此外还会向被配置为接收 EliteMobs 通知的 Discord 频道发送消息。设置此功能的方法请见此页面。 Discord 上的消息将与聊天消息相同——生成 / 死亡 / 逃脱。
自定义事件走的是另一条路径
自定义事件(customevents/*.yml)同样带有 announcementPriority,但它们的 startMessage 和 endMessage 走的是另一套更简单的处理流程。其行为如下:
| 优先级 | 消息发送给谁 | Discord |
|---|---|---|
| 0 | 仅事件所在世界的玩家 | 否 |
| 1 | 全服务器广播;除非 events.yml 中设置了 announcementBroadcastWorldOnly: true,此时仅事件所在世界 | 否 |
| 2 | 仅事件所在世界的玩家(全服广播的分支是精确针对优先级 1 编写的) | 否 |
| 3+ | 仅事件所在世界的玩家 | 是 |
因此对于事件来说 —— 与 Boss 不同 —— 优先级 2 并不等同于优先级 1,而且即使 announcementBroadcastWorldOnly 为 false,优先级 3 或更高也不会进行全服广播。事件的 announcementPriority 默认为 0。
消息类型
自定义 Boss 可以拥有三种类型的公告:
- 生成消息(
spawnMessage)——在 Boss 生成时发送 - 死亡消息(
deathMessage)——在 Boss 被击杀时发送 - 逃脱消息(
escapeMessage)——在 Boss 消失 / 逃脱时发送
每种消息类型都必须在你的 Boss 文件中单独配置。公告优先级等级控制这些消息是否发送以及由谁接收。
配置示例
# 静默 Boss——仅造成伤害者能看到死亡消息
announcementPriority: 0
deathMessage: '&c$name has been defeated!'
# 带追踪的聊天公告
announcementPriority: 1
spawnMessage: '&4$name &chas spawned!'
deathMessage: '&a$name &2has been slain by $damager1name!'
escapeMessage: '&e$name &6has escaped!'
locationMessage: '&6$name &eis $distance blocks away at $location'
# Discord 集成
announcementPriority: 3
spawnMessage: '&4$name &chas spawned!'
locationMessage: '&6Track $name at $location'