Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MenuWallet 钱包系统

一款为 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 可选,未装时头颅使用本地档案

安装

  1. 将 MenuWallet.jar 放入服务器 plugins 目录
  2. 重启服务器,插件会在 plugins/MenuWallet/config.yml 生成默认配置
  3. 按需修改配置后执行 /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 时即使有权限节点也不可用。

配置说明(Wiki)

经济与货币

本插件为 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 通用与 Close 指令

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 控制

转账税(需配合带税功能的修改版 ExcellentEconomy)

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。

About

ExcellentEconomy 专属钱包系统插件:钱包中心 / 余额 / 转账 / 收款设置

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages