跳至主要內容

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 整合:

  1. 確認你的伺服器已安裝 Vault 插件
  2. 確認你有一個與 Vault 相容的經濟插件(例如 EssentialsX、CMI 等)
  3. 開啟 EliteMobs 插件資料夾中的 EconomySettings.yml
  4. 設定 useVault: true
  5. 重新啟動伺服器

設定範例:

# 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 整合已啟用但無法運作:

  1. 檢查伺服器日誌中是否有:「Vault detected.」(出現在某行 EliteMobs 日誌中)

    • 若沒有:Vault 插件未安裝或未載入
  2. 檢查是否有警告:「Vault preference detected. This is not the recommended setting.」

    • 當 Vault 整合啟用時這是預期的訊息 - 它是一則提醒,而非錯誤
    • 如果 Vault 仍無法運作,請確認你的經濟插件已正確向 Vault 註冊
  3. 檢查是否有:「Player tried to check currency when they had no economy entry」

    • 原因:經濟插件尚未建立玩家帳號
    • 解決方法:檢查你的經濟插件設定
  4. 如果已啟用但 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 必須存在於伺服器上。