指南

如何製作 Minecraft 經濟插件

更新於 2026年10月18日

經濟插件會替每位玩家保存餘額,讓他們互相轉帳、賺錢,並在商店裡消費。重點不在指令,而在 Vault 串接:正是它讓商店、職業和拍賣插件能使用你的貨幣。這份指南涵蓋設計、儲存方式,以及如何建置和測試。

從這個範例開始,把規則改成你自己的。

用 Codexe 產生這個

逐步說明

  1. 1.先決定插件的定位

    它要嘛就是經濟本身(保存餘額,並把自己註冊為 Vault 經濟),要嘛透過 Vault 使用現有的經濟(商店、懸賞、職業插件)。大多數伺服器各需要一個,而不是兩套經濟。

  2. 2.選擇伺服器和版本

    寫明伺服器軟體和版本,例如 Paper 1.21.4。插件會依照該版本的 API 和 Java 版本建置。

  3. 3.列出指令和規則

    /balance、/pay <player> <amount>、/baltop,以及 /eco give|take|set 這類管理指令。再加上起始餘額、貨幣名稱、小數位數和最低轉帳金額。

  4. 4.選擇餘額存在哪裡

    單一伺服器用 SQLite;如果多台伺服器必須共用同一份餘額,就用 MySQL。金錢必須在重新啟動和當機後依然存在,所以絕不能只放在記憶體裡。

  5. 5.讓 Codexe 撰寫並建置

    描述插件,並明確寫出 Vault,這樣它就會被加為相依套件。Codexe 會撰寫 Java 程式碼、plugin.yml 和 config.yml,編譯並修正建置錯誤,然後專案才會變成就緒。

  6. 6.在遊戲中測試轉帳

    按下「立即試用」,加入測試伺服器。在兩個帳號之間轉帳,試試太大、負數或不是數字的金額,然後重新啟動,確認餘額還在。

  7. 7.安裝

    把 Vault 和你的 .jar 放進伺服器的 plugins/ 資料夾,然後重新啟動。移除其他經濟插件,或決定 Vault 該使用哪一個。

Vault 扮演的角色

Vault 是一座橋梁,而不是經濟插件。經濟插件會實作 Vault 的 Economy 介面,並註冊到伺服器的服務管理器;其他插件則透過 getServer().getServicesManager().getRegistration(Economy.class) 取得它,並呼叫 getBalance、withdrawPlayer 和 depositPlayer 等方法。

所以商店插件根本不需要知道你用的是哪個經濟插件。在 plugin.yml 裡,如果插件少了 Vault 就無法運作,請用 depend: [Vault];如果 Vault 是選用的,就用 softdepend。Vault API 只在編譯時需要,Vault 本身則安裝在伺服器上。

需求裡要寫明的決定

  • 金額格式:貨幣名稱的單複數、符號、要保留幾位小數。
  • 限制:起始餘額、最高餘額、餘額能不能變成負數。
  • 離線玩家:/pay 和 /eco 能不能對不在線上的玩家使用。
  • 紀錄:把交易紀錄存在資料庫或檔案裡,方便管理人員處理糾紛。
  • 賺錢方式:擊殺生物、在線時數獎勵、出售物品,或只能透過管理指令。

餘額要存在哪裡

儲存方式適合要注意
YAML 檔案非常小的伺服器,容易閱讀玩家多時很慢,當機時容易損毀
SQLite單一伺服器,不用設定無法在多台伺服器之間共用
MySQL / MariaDB共用同一份餘額的伺服器群組需要資料庫伺服器,並在 config.yml 填入登入資訊

描述範例

「一個名為 Coins 的 Paper 1.21.4 經濟插件,把自己註冊為 Vault 經濟。/balance [player]、/pay <player> <amount> 最低 1、/baltop 顯示前 10 名,擁有 coins.admin 的玩家可以使用 /eco give|take|set。新玩家起始有 100 枚金幣。保留兩位小數。每筆轉帳都記錄日期、付款人、收款人和金額。餘額存在 SQLite。貨幣名稱和所有訊息都放在 config.yml。」

如果你沒有特別要求,Codexe 預設使用 SQLite。如果你要求 MySQL,插件會附上 storage-type 設定,而你試用時,測試伺服器會另外給它一個專屬的 MySQL 資料庫。

常見問題

我需要 Vault 嗎?

如果是沒有其他插件會用到的獨立經濟,就不需要。只要其他插件(商店、職業、拍賣)必須讀取或修改餘額,你就需要它,因為它們找的正是這個 API。

可以和 EssentialsX 一起執行嗎?

EssentialsX 有自己的經濟,也會註冊到 Vault。一次只執行一個經濟,或關掉你不要的那一個,否則其他插件使用的餘額可能和你的指令顯示的不一樣。

多台伺服器可以共用同一份餘額嗎?

可以,用 MySQL 或 MariaDB 當作儲存方式,並在每台伺服器的 config.yml 填入同一個資料庫。在需求中寫明這點,插件就會從資料庫讀取餘額,而不會快取太久。

沒有真正的伺服器要怎麼測試?

用「立即試用」:系統會啟動一台符合你版本的私人 Paper 伺服器,裝好編譯完成的插件,並替它安裝 depend 和 softdepend 裡列出的插件,例如 Vault。免費方案每天有 3 次測試伺服器,每次 10 分鐘。

打造你伺服器的經濟系統

這則提示詞開啟後即可直接傳送:

“一個名為 Coins 的 Paper 1.21.4 經濟插件,註冊為 Vault 經濟:/balance、/pay 最低 1、/baltop 前 10 名、coins.admin 可用 /eco give|take|set、起始餘額 100、兩位小數、記錄每筆轉帳、餘額存在 SQLite、貨幣名稱和訊息放在 config.yml。”

用 Codexe 產生這個
如何製作 Minecraft 經濟插件(Vault、Paper) | Codexe