Vault 整合
自 7.1.0 版起,EliteMobs 支援 Vault 整合(使用 VaultAPI 1.7)。你可以開啟 Vault,將 EliteMobs 經濟與你伺服器的經濟統一起來。
不過,以下是為什麼這是個壞主意:
EliteMobs 沒有升級系統。其進程系統的核心在於透過擊殺精英怪取得更好的物品,並提升武器與盔甲技能,以存取更高等級的戰利品、更高等級的怪物、更高等級的任務,以及更高等級的競技場挑戰與地下城。
此外,在購買護身符與轉售從精英怪取得的戰利品方面,EliteMobs 有著非常微妙的平衡。
因此,如果你將伺服器的經濟與 EliteMobs 經濟結合,玩家將能夠輕易地用錢買到頂端,可能繞過學習曲線。
如此一來,進程系統便無法正常運作,這會導致更糟的問題。高等級精英怪擁有各種能力,玩家應該透過與它們戰鬥數十小時來慢慢學習這些能力,學會辨識精英怪所擁有的能力以及如何反制這些能力,並學會如何為與精英怪的戰鬥做好準備。
如果玩家直接跳到終局,他們會覺得戰鬥難度近乎不可能且極度不公平,因為他們沒有花時間透過長時間遊玩來培養出有效率擊殺 EliteMobs 所需的知識。
需求
若要使用 Vault 整合,你必須具備:
- Vault 插件(與 VaultAPI 1.7+ 相容的版本)
- 一個會向 Vault 註冊的經濟插件(EssentialsX、CMI 等)
- 兩個插件皆正確設定並運行
EliteMobs 會自動偵測 Vault,並在設定中啟用時使用它。
設定
若要啟用 Vault 整合:
- 確認你的伺服器已安裝 Vault 插件
- 確認你有一個與 Vault 相容的經濟插件(例如 EssentialsX、CMI 等)
- 開啟 EliteMobs 插件資料夾中的
EconomySettings.yml - 設定
useVault: true - 重新啟動伺服器
設定範例:
# Whether to use Vault for the economy instead of the built-in system.
# NOT RECOMMENDED! See: https://wiki.nightbreak.io/EliteMobs/vault
useVault: false
運作方式
當 Vault 整合啟用時:
- 所有 EliteMobs 貨幣(精英金幣)都會轉換為你伺服器的主要經濟貨幣
- 玩家在擊殺精英怪時賺取的是你的經濟貨幣,而非精英金幣
- 商店交易、技能升級,以及所有其他 EliteMobs 經濟功能都使用你伺服器的經濟
- EliteMobs 經濟系統會被 Vault 完全取代
貨幣操作:
- 存入:金錢會加入玩家的 Vault 餘額
- 提取:金錢會從玩家的 Vault 餘額移除
- 餘額查詢:查詢玩家的 Vault 餘額
- 直接設定餘額:基於安全考量已停用(請使用你的經濟插件)
注意:當 Vault 整合啟用時,所有貨幣操作都會導向 Vault。如果 Vault 在執行期間變得不可用,EliteMobs 不會默默退回其內部經濟,因此請確保在 useVault 開啟期間,你的經濟插件持續向 Vault 註冊。
安全功能
基於安全考量,EliteMobs 不支援透過 Vault 直接設定玩家的貨幣餘額。任何這麼做的嘗試都會被封鎖並記錄。如有需要,請使用你經濟插件的指令直接設定餘額。
範例情境
不使用 Vault:
- 玩家擊殺等級 50 的精英怪
- 獲得 100 精英金幣(儲存在 EliteMobs 資料庫中)
- 只能在 EliteMobs 商店中花用精英金幣
使用 Vault:
- 玩家擊殺等級 50 的精英怪
- 獲得 100 [你的經濟貨幣](儲存在 Vault/經濟插件中)
- 可在 EliteMobs 商店以及伺服器上任何其他地方花用金錢
- 其他玩家可以轉帳以購買 EliteMobs 服務
- 經濟在所有插件之間統一
這就是為什麼不建議這麼做:它允許玩家使用來自其他來源的貨幣,從而破壞了預期的進程系統。
疑難排解
如果 Vault 整合已啟用但無法運作:
-
檢查伺服器日誌中是否有:「Vault detected.」(出現在某行 EliteMobs 日誌中)
- 若沒有:Vault 插件未安裝或未載入
-
檢查是否有警告:「Vault preference detected. This is not the recommended setting.」
- 當 Vault 整合啟用時這是預期的訊息 - 它是一則提醒,而非錯誤
- 如果 Vault 仍無法運作,請確認你的經濟插件已正確向 Vault 註冊
-
檢查是否有:「Player tried to check currency when they had no economy entry」
- 原因:經濟插件尚未建立玩家帳號
- 解決方法:檢查你的經濟插件設定
-
如果已啟用但 EliteMobs 仍使用精英金幣:
- 確認設定鍵完全是:
useVault: true - 變更設定後重新啟動伺服器
- 檢查是否有一個經濟插件已向 Vault 註冊
- 確認設定鍵完全是:
給開發者
如果你正在開發附加元件或整合:
- Vault 狀態:檢查
VaultCompatibility.VAULT_ENABLED(靜態布林值) - 經濟 API:使用
EconomyHandler方法(而非直接使用 VaultCompatibility) - 支援的操作:add、subtract、check(set 已停用)
- 貨幣精度:內部系統使用 2 位小數
- 無執行期退回機制:當
VAULT_ENABLED為 true 時,EconomyHandler始終委派給 Vault;沒有自動切換回內部經濟的機制
原始碼位置:
- src/main/java/com/magmaguy/elitemobs/economy/VaultCompatibility.java
- src/main/java/com/magmaguy/elitemobs/economy/EconomyHandler.java
EliteMobs 使用 VaultAPI 1.7 作為僅編譯期的相依套件。執行期時,Vault 插件 JAR 必須存在於伺服器上。