一款为 Paper 服务器打造的 ExcellentEconomy 专属钱包系统插件:钱包中心 / 余额总览 / 玩家转账 / 收款设置,全部功能基于原版箱子界面与 Paper 1.21.6+ 原生 Dialog UI,无任何菜单插件依赖。
作者:狗晨Yz | Bilibili:space.bilibili.com/443124258
- 6 个可视化界面:钱包中心、余额总览、转账选人、金额输入、转账确认、收款设置
- 原生 Dialog UI:金额输入与转账确认使用 Paper 1.21.6+ 原生对话框(下拉选货币、精确金额文本框、滑条),低版本客户端自动回退箱子界面
- 多货币支持:最多 3 种货币,配置文件即可新增,界面自动布局
- ExcellentEconomy 专属:深度对接 EE,余额/转账/收款开关全部通过 EE 命令与 PAPI 占位符完成
- 收款开关:玩家可按货币关闭/开启他人向自己付款
- 性能友好:零常驻任务,头颅缓存 + 失败冷却防刷屏防 429,经济查询走 PAPI 内存级占位符
- 配置全热重载:
/walletadmin reload即时生效,旧配置自动迁移补全
| 项目 | 要求 |
|---|---|
| 服务端 | Paper(api-version 26.2,1.21.x) |
| Java | 21+ |
| 经济插件 | ExcellentEconomy(必需,硬前置,未装时本插件不会加载) |
| PlaceholderAPI | 可选,未装时经济查询回退命令输出解析 |
| SkinsRestorer | 可选,未装时头颅使用本地档案 |
- 将
MenuWallet.jar放入服务器plugins目录 - 重启服务器,插件会在
plugins/MenuWallet/config.yml生成默认配置 - 按需修改配置后执行
/walletadmin reload
| 指令 | 说明 |
|---|---|
/wallet(别名 /mw、/menuwallet、/qianbao) |
打开钱包中心 |
/wallet balance |
打开余额总览 |
/wallet pay [货币] [玩家] |
发起转账 |
/wallet settings |
打开收款设置 |
/payselect [货币] [玩家] |
发起转账(等价于 /wallet pay) |
/walletadmin reload |
重载配置(需 OP 或 menuwallet.admin) |
| 权限节点 | 说明 | 默认 |
|---|---|---|
menuwallet.use |
使用钱包中心 | 所有玩家 |
menuwallet.pay |
转账 | 所有玩家 |
menuwallet.balance |
余额总览 | 所有玩家 |
menuwallet.settings |
收款设置 | 所有玩家 |
menuwallet.admin |
管理命令(重载) | OP |
menuwallet.* |
全部权限 | OP |
此外 config.yml 的 permissions.* 可作为总开关:设为 false 时即使有权限节点也不可用。
本插件为 ExcellentEconomy 专属,余额 / 转账 / 收款开关全部通过 EE 完成,EE 为硬前置。
currencies: # 最多 3 个,超过只取前 3
- id: money # 货币 id(小写,用于 PAPI 占位符拼接)
display-name: '&6金币' # 界面显示名
material: GOLD_NUGGET # 界面图标材质
command-name: money # EE 经济命令前缀
description: '高价值主货币' # 可选,显示在货币卡片 lore 中
default-currency: money # 转账默认选中货币- 余额占位符按货币 id 自动拼接:
%excellenteconomy_balance_raw_<id>%、%excellenteconomy_payments_state_<id>%,无需配置 - PAPI 不可用时自动回退
<command-name> balance <玩家>等命令输出解析
gui:
border-material: BLACK_STAINED_GLASS_PANE # 边框材质
filler-material: AIR # 内部填充(AIR = 留空)
close-material: RED_STAINED_GLASS_PANE # 关闭按钮材质
confirm-material: LIGHT_BLUE_STAINED_GLASS_PANE
back-material: ARROW
info-book-material: WRITABLE_BOOK
pay-material: GOLD_NUGGET # 转账入口图标
settings-material: LEVER # 收款设置入口图标
close-command: '' # 点击 Close 后执行的指令,留空 = 仅关闭界面close-command 说明:
- 留空时点击 Close 仅关闭界面
- 默认以玩家身份执行(需要玩家拥有该指令权限),失败会自动改用控制台身份重试
- 加
console:前缀则直接以控制台身份执行,无需玩家权限 - 示例:
close-command: 'spawn'、close-command: 'console:dm open main' - 指令在界面关闭后的下一 tick 执行,不会与点击事件冲突
- 转账确认页的「取消」按钮仅关闭界面,不触发该指令
amount-input:
mode: dialog # dialog / preset / chat / anvil
dialog:
slider-min: 1 # 滑条最小值(也是初始位置)
slider-step: 1 # 滑条步长
text-placeholder: '12.5' # 文本框示例金额
text-max-length: 16
presets: [1, 10, 100, 500, 1000, 10000, 50000, 'max']dialog模式需客户端 1.21.6+,低版本自动回退preset箱子界面- 滑条上限自动取当前货币全部余额,拉满即转全部
- Dialog 中文本框金额优先于滑条;下拉可直接切换货币(余额实时刷新)
preset模式的'max'为特殊值,表示当前货币全部余额chat模式关闭界面后在聊天栏输入金额,输入「取消」可放弃,超时时间由behavior.chat-input-timeout控制
transfer:
confirm-command: 'confirm' # /pay 暂存后自动补发的确认命令,留空 = 不补发(原版无税 EE)- 使用带转账税的 EE 时,转账流程为两阶段:MenuWallet 发起
/pay(暂存待确认转账)后,自动以玩家身份补发/confirm完成扣款 - 确认页(箱子版 + Dialog 版)动态显示:金额 / 税率 / 税额 / 实付 / 转账后余额;免税玩家自动隐藏税率与税额行
- 税额通过 EE 的占位符
%excellenteconomy_transfer_tax_amount_<货币id>_<金额>%读取,与实际扣款分毫不差 - 余额预检按"金额 + 税额"校验
skull:
prefer-skinsrestorer: true # 优先用 SkinsRestorer 的皮肤纹理
cache: true # 会话内缓存(防 429 刷屏)
cache-timeout: 600 # 缓存秒数,0 = 不缓存sounds:
open: BLOCK_CHEST_OPEN,1.0,1.0 # 音源名,音量,音高
click: BLOCK_NOTE_BLOCK_PLING,1.0,1.0
page: BLOCK_CHEST_OPEN,1.0,2.0
close: BLOCK_CHEST_CLOSE,1.0,0.5
invalid: ENTITY_ITEM_BREAK,1.0,0.5
success: ENTITY_PLAYER_LEVELUP,1.0,1.5支持原版 Sound 枚举名或 sound key(如 block.chest.open),留空则不播放。
behavior:
exclude-self: true # 转账选人列表排除自己
sort-players: name # name / none
page-size: 21 # 选人页每页人数
amount-decimals: 1 # 允许小数位(0 = 整数)
chat-input-timeout: 30 # 聊天输入限时(秒)texts.*:所有界面标题、按钮名、lore 模板,支持{player}{amount}{balance}等占位符theme.*:lore 行首、高亮色等主题元素- 颜色码同时支持
&、&#RRGGBB与<#RRGGBB>三种写法 messages.*提示消息留空 = 不发送,可用来关闭与经济插件重复的提示
升级插件后首次启动/reload 时,插件会以 jar 内最新默认配置为模板,自动补全缺失的键、清理已废弃的键,用户已有值一律保留。
Q:打开金额输入界面显示的是箱子而不是对话框?
A:Dialog UI 需要客户端 1.21.6+。低版本客户端会自动回退箱子界面,属正常现象;也可把 amount-input.mode 固定为 preset / chat / anvil。
Q:不装 PlaceholderAPI 能用吗? A:能。余额/收款状态会回退到经济命令输出解析,功能不受影响,仅多一次命令执行开销。
Q:玩家头颅皮肤不对/是默认头? A:安装 SkinsRestorer + PlaceholderAPI 可获得离线玩家真实皮肤纹理;获取失败会自动降级本地档案并有 5 分钟冷却,不会刷屏。
Q:转账提示成功但钱没变动? A:请确认经济插件的转账命令支持以玩家身份执行。MenuWallet 以转账发起玩家的身份执行经济插件的转账命令,与本玩家手动输入命令完全等价;若手动输入也不生效,请检查经济插件本身的配置。
- 1.4.1 插件定位调整:ExcellentEconomy 成为硬前置,移除多经济适配器机制
- 1.4.0 新增转账税支持:确认页展示税率/税额/实付,转账流程适配 EE 两阶段确认(pay → confirm)
- 1.3.8 移除富豪榜功能(EE 自带排行榜数据不可靠);主菜单布局调整为 3 项
- 1.3.0 ~ 1.3.7 界面布局与 lore 全面美化(对齐 TrMenu 风格);转账改以玩家身份执行修复假成功;Close 按钮支持自定义指令;新增
/mw等别名;提示消息支持留空关闭 - 1.2.x 及更早:多货币、Dialog UI、收款开关等基础功能
欢迎 Issue / PR。构建方式:
mvn clean package构建产物位于 target/MenuWallet.jar。