跳到主要内容

公告优先级系统

公告优先级系统用于管理 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'