跳至主要內容

公告優先度系統

公告優先度系統用來管理 EliteMobs 訊息的重要程度。它由自訂 BOSS(生成/死亡/逃脫訊息與追蹤)以及自訂事件(startMessage / endMessage)使用。

兩者使用不同的程式路徑,在優先度 2 時行為也不同——請見本頁底部的自訂事件使用不同的路徑。

簡短版速查表:

  • 等級 0:不發送公開公告;設定的死亡訊息僅發送給造成傷害的玩家
  • 等級 1:設定的聊天訊息 + 啟用 showCustomBossLocation 時的追蹤
  • 等級 2:對自訂 BOSS 而言與等級 1 完全相同(無獨立行為)
  • 等級 3:等級 1 的功能 + Discord 公告(需要 DiscordSRV)

運作方式:

註:如果你想使用非預設值,你需要為你的自訂 BOSS 設定這套優先度系統。點擊這裡了解如何設定。

等級 0​

關閉自訂 BOSS 的公開公告。這表示:

  • 不會發送任何生成訊息
  • 不會發送任何逃脫訊息
  • 死亡訊息僅會發送給對 BOSS 造成傷害的玩家(而非全伺服器)
  • 即使已設定 locationMessage,BOSS 追蹤仍會被停用

等級 1​

僅設定訊息不會啟用公開公告

如果省略 announcementPriority,即使設定了訊息欄位,BOSS 也使用優先度 0。死亡訊息仍可私下發送給造成傷害的玩家。設定 announcementPriority: 1 或更高以啟用公開公告。

如果有設定的話,自訂 BOSS 將能夠在聊天中發送訊息。若有設定,它們會發送生成、死亡與逃脫訊息。

預設情況下,生成訊息會廣播給伺服器上的所有玩家。在 events.yml 中啟用僅在事件世界廣播的設定(announcementBroadcastWorldOnly: true),即可將廣播限制在 BOSS 所在世界。

啟用 showCustomBossLocation 後,此等級也會啟用 BOSS 追蹤。BOSS 生成時,同世界玩家會收到可點擊的追蹤通知;也可以使用 /em 選單。locationMessage 用於自訂追蹤文字,是選用設定。

追蹤需求​

要讓 BOSS 追蹤在優先度 1 或 2 下運作,必須完成以下設定:

  • 將 announcementPriority 設為 1 或更高
  • 可選擇加入 locationMessage 自訂文字;缺少或空白時使用 $name: $distance blocks away!
  • 確保伺服器設定中已啟用 showCustomBossLocation(預設:true)

locationMessage 可包含預留位置:

  • $name - 顯示 BOSS 名稱
  • $distance - 顯示與導航目標的距離
  • $location - 顯示導航目標的座標

在同一世界中,導航目標就是 BOSS。跨世界時,追蹤可以指向直接連接兩個世界的蟲洞入口;如果不存在這樣的連接,則顯示設定的異世界訊息。

等級 2​

對自訂 BOSS 而言,等級 2 的行為與等級 1 完全相同——優先度 2 並沒有獨立的程式路徑。每種訊息類型在優先度 1 與優先度 2 下都遵循相同規則:

  • 生成訊息會在全伺服器廣播,除非設定了 announcementBroadcastWorldOnly: true,此時它們僅會送給 BOSS 所在世界的玩家。
  • 對於任何 1 或更高的優先度,死亡訊息都會在全伺服器廣播。
  • 對於任何 1 或更高的優先度,逃脫訊息一律只會送給 BOSS 所在世界的玩家。

啟用 showCustomBossLocation 後,此等級也會啟用 BOSS 追蹤。

註:追蹤需要公告優先度至少為 1,並啟用 showCustomBossLocation;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,而 3 或更高的優先度即使 announcementBroadcastWorldOnly 為 false 也不會全伺服器廣播。事件的 announcementPriority 預設為 0。

訊息類型​

自訂 BOSS 可以有三種類型的公告:

  • 生成訊息(spawnMessage)- 在 BOSS 生成時發送
  • 死亡訊息(deathMessage)- 在 BOSS 被擊殺時發送
  • 逃脫訊息(escapeMessage)- 在 BOSS 消失/逃脫時發送

每種訊息類型都必須在你的 BOSS 檔案中分別設定。公告優先度等級控制這些訊息是否發送以及由誰接收。

BOSS 死亡訊息還要求啟用 MobCombatSettings.yml 中的 doCustomEliteMobsDeathMessages(預設為 true)。非空的 deathMessages 清單優先於單條 deathMessage。沒有對應攻擊者的排名行會被省略。

預留位置依欄位區分。locationMessage 支援 $name、$distance 和 $location。生成與逃脫訊息不替換 $name,請直接填寫 BOSS 名稱。單條 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'