DiscordSRV 整合
EliteMobs 使用 DiscordSRV 來廣播公告優先度等級 3 以上的訊息。你可以在這裡閱讀關於公告優先度系統的說明。
實質上,這表示某些非常特別的自訂 BOSS 能夠在 Discord 上發送訊息,看起來像這樣:

其用意是建立一個專屬的 EliteMobs 公告房間,讓玩家可以查看目前是否有任何有趣的世界 BOSS 還活著,好讓他們去擊殺並在擊殺排行榜上展示戰績。
完整設定流程
設定 DiscordSRV
DiscordSRV 是另一個並非由我開發的外掛。你可以在這裡找到他們詳盡的設定指南。如果你在設定上遇到困難,他們的支援房間在這裡。我無法為這個外掛提供支援,所以安裝的這個部分請洽詢他們。
註: EliteMobs 是以 DiscordSRV 1.28.0 版測試的。雖然其他版本可能也能運作,但已知這個版本是相容的。
設定 EliteMobs 的 DiscordSRV 設定檔
一旦你正確設定好 DiscordSRV(而且你必須先測試它是否真的正常運作,才能進到這個步驟),EliteMobs 的設定只有 1 個步驟。
前往 EliteMobs 設定資料夾中的 DiscordSRV.yml 設定檔(通常是 plugins/EliteMobs/DiscordSRV.yml),你會找到一個叫做 announcementRoomName 的設定選項。
這則訊息有三種可用的值。我推薦第 1 種。
-
[推薦] 你在 DiscordSRV 設定檔中所設定的房間名稱。房間叫什麼名字並不重要,重要的是你使用了正確的名稱。以下是我設定為專用於 EliteMobs 事件的房間範例:
以我的情況來說,這個選項應該寫成 announcementRoomName: EMEvents。 -
你在 DiscordSRV 設定檔中所設定的房間 ID。以下是房間的範例。請注意每個房間都是獨一無二的。我只是把圖片當作範例展示,不要試圖複製那些 ID 數字。那是不會有用的。你的設定應該會有一組依你的 Discord 房間 ID 而定的獨特數字。

-
[不佳] 你的房間在 Discord 上所顯示的名稱。由於許多因素,這種方式不保證能正確運作。請記得你的 Discord 房間必須在 DiscordSRV 的設定檔中設定好——光是你能把房間名稱填進這個設定檔,並不代表你可以跳過在 DiscordSRV 上設定它。
技術說明
- 傳送到 Discord 的訊息會自動剝除 Minecraft 顏色代碼,以確保正常顯示
- Discord 訊息以非同步方式傳送,以避免伺服器延遲
- EliteMobs 使用三層查找來找出你的 Discord 頻道:先以頻道 ID,再以 DiscordSRV 的頻道對應,最後以頻道名稱搜尋
- 只有公告優先度 3 以上的內容才會觸發 Discord 通知——這涵蓋自訂 BOSS 的生成/死亡/逃脫訊息,以及自訂事件的
startMessage/endMessage - 傳送到 Discord 的訊息與遊戲中顯示的相同
- 頻道只會被解析一次,之後會在伺服器該次執行的剩餘期間被快取,所以更改
announcementRoomName需要重新啟動,而不只是/em reload
測試
你可以使用指令 /em discord <message> 來測試你的設定是否正常運作。把 <message> 換成你想傳送到 Discord 的任何文字。
範例:/em discord Test message from EliteMobs!
如果你的訊息出現在所設定的 Discord 頻道中,那就完成了!
註: 這個指令需要 elitemobs.discord.message 權限
此外,你可以使用 /em discord(不帶任何訊息)來顯示 EliteMobs Discord 伺服器的邀請連結,用於支援與下載。這個指令需要 elitemobs.discord.link 權限。
疑難排解
訊息沒有出現在 Discord 中:
- 確認 DiscordSRV 已安裝且正常運作(請先用 DiscordSRV 自己的指令測試)
- 檢查
announcementRoomName沒有維持在預設的預留值 - 確保房間名稱/ID 與你的 DiscordSRV 設定完全相符
- 檢查主控台是否有 EliteMobs 關於 Discord 整合的警告
- 確認你擁有
elitemobs.discord.message權限以進行測試
找不到頻道的錯誤:
- 再次檢查你的頻道名稱在 DiscordSRV.yml 與 EliteMobs 的 DiscordSRV.yml 中的拼寫
- 試著改用數字頻道 ID 而非名稱
- 確保該頻道已在 DiscordSRV 的 config.yml 中正確設定
測試指令沒有作用:
- 確認你擁有
elitemobs.discord.message權限 - 使用正確的語法:
/em discord <message>(帶有訊息) - 檢查伺服器主控台是否有錯誤訊息