指南
如何制作 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 生成这个