指南
如何製作 Minecraft 經濟插件
更新於 2026年10月18日
經濟插件會替每位玩家保存餘額,讓他們互相轉帳、賺錢,並在商店裡消費。重點不在指令,而在 Vault 串接:正是它讓商店、職業和拍賣插件能使用你的貨幣。這份指南涵蓋設計、儲存方式,以及如何建置和測試。
從這個範例開始,把規則改成你自己的。
用 Codexe 產生這個逐步說明
1.先決定插件的定位
它要嘛就是經濟本身(保存餘額,並把自己註冊為 Vault 經濟),要嘛透過 Vault 使用現有的經濟(商店、懸賞、職業插件)。大多數伺服器各需要一個,而不是兩套經濟。
2.選擇伺服器和版本
寫明伺服器軟體和版本,例如 Paper 1.21.4。插件會依照該版本的 API 和 Java 版本建置。
3.列出指令和規則
/balance、/pay <player> <amount>、/baltop,以及/eco give|take|set這類管理指令。再加上起始餘額、貨幣名稱、小數位數和最低轉帳金額。4.選擇餘額存在哪裡
單一伺服器用 SQLite;如果多台伺服器必須共用同一份餘額,就用 MySQL。金錢必須在重新啟動和當機後依然存在,所以絕不能只放在記憶體裡。
5.讓 Codexe 撰寫並建置
描述插件,並明確寫出 Vault,這樣它就會被加為相依套件。Codexe 會撰寫 Java 程式碼、
plugin.yml和config.yml,編譯並修正建置錯誤,然後專案才會變成就緒。6.在遊戲中測試轉帳
按下「立即試用」,加入測試伺服器。在兩個帳號之間轉帳,試試太大、負數或不是數字的金額,然後重新啟動,確認餘額還在。
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 產生這個