公告优先级系统
公告优先级系统用于管理 EliteMobs 消息的重要程度。目前它仅用于管理自定义 Boss 生成所发送的消息。
简明速查表:
- 等级 0:静默(未配置任何消息的 Boss 的默认值)——仅造成伤害者能看到死亡消息
- 等级 1:聊天消息 + 追踪(如果配置了 messages/locationMessage)
- 等级 2:对于自定义 Boss 而言与等级 1 完全相同(没有单独的行为)
- 等级 3:等级 1 的功能 + Discord 公告(需要 DiscordSRV)
工作原理:
注意:如果你想使用非默认值,需要为你的自定义 Boss 配置这个优先级系统。点击 这里 了解如何操作。
等级 0
强制自定义 Boss 保持静默。这意味着:
- 不会发送任何生成消息
- 不会发送任何逃脱消息
- 死亡消息 仅 发送给对 Boss 造成过伤害的玩家(而非全服务器)
- 即使配置了 locationMessage,Boss 追踪也会被禁用
等级 1
如果你完全不设置 announcementPriority,它会根据 Boss 的内容来取默认值:配置了任何生成 / 死亡 / 逃脱消息的 Boss 默认为优先级 1,而没有任何公告内容的 Boss 默认为优先级 0(静默)。若要强制让一个带有消息的 Boss 保持静默,请显式设置 announcementPriority: 0。
如果自定义 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 上的消息将与聊天消息相同——生成 / 死亡 / 逃脱。
消息类型
自定义 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'