主题
currencies.yml 负责多货币定义。
当前版本的设计思想不是“系统里只有一种钱”,而是:
一个统一账户体系下,可以存在多个货币。
默认示例
yml
currencies:
gold:
display-name: "金币"
symbol: "$"
description: "主货币"
enabled: true
scale: 0
default-balance: 0
allow-negative: false
max-balance: 999999999
sort-order: 1
point:
display-name: "积分"
symbol: "P"
description: "活动积分"
enabled: true
scale: 0
default-balance: 0
allow-negative: false
max-balance: 999999999
sort-order: 2结构说明
每个一级 key 都是货币 ID,例如:
goldpointtoken
货币 ID 会被系统内部大量使用,所以建议:
- 小写
- 英文 / 数字 / 简单下划线
- 不要频繁改名
字段说明
display-name
显示名,用于:
- 命令输出
- 个人经济面板显示
- 排行榜展示
- 系统资金池统计展示
例如:
yml
display-name: "金币"symbol
货币符号。
例如:
yml
symbol: "$"这不是必须字段,但会影响格式化展示体验。
description
描述信息,主要用于:
- 管理理解
- 后续页面 / GUI / 管理面板展示
enabled
是否启用该货币。
如果设为:
yml
enabled: false通常意味着:
- 不再作为玩家侧可用货币
- 命令层不会把它当成正常启用货币
- 但历史账务记录仍然存在
这和“删除货币”不同,更接近“归档 / 停用”。
scale
精度位数。
这个字段决定该货币如何把“外部输入金额”转换成内部 long 存储。
例子
scale: 0
yml
scale: 0表示整数货币:
- 输入
100 - 内部也就是
100
scale: 2
yml
scale: 2表示两位小数货币:
- 输入
12.34 - 内部会存成
1234
建议
- 普通游戏币:
0 - 点券 / 带小数的积分:
2
default-balance
新账户默认余额。
例如:
yml
default-balance: 0如果你想新玩家开局就有启动资金,也可以改成:
yml
default-balance: 100但要注意:
- 这是账户初始值
- 不是一条显式奖励流水
所以如果你非常强调可审计,通常还是更推荐开局通过命令 / 系统逻辑显式发放一次。
allow-negative
是否允许负余额。
例如:
yml
allow-negative: false如果是 false:
- 扣钱扣到负数会被拒绝
如果是 true:
- 可以出现透支或欠款型设计
大多数常规服务器建议保持:
yml
falsemax-balance
该货币允许的最大余额。
超过这个值时,相关入账会失败。
这个字段主要用于:
- 防止异常刷钱
- 防止导入脚本或命令误操作把余额打爆
sort-order
排序权重。
这个字段主要影响:
- 货币列表显示顺序
- 个人经济面板展示顺序
- 管理员查看时的顺序体验
推荐的货币定义习惯
主货币
适合做:
- 玩家交易
- 商店支付
- Vault 默认映射
通常建议:
- 启用
scale简单- 不允许负数
- 作为
main-currency
功能积分 / 活动币
适合做:
- 活动奖励
- 限时积分
- 非通用消耗币
通常建议:
- 单独定义
- 不一定开放给
/pay - 可以只在部分玩法中使用
动态管理与配置文件的关系
当前版本除了手改文件,还支持命令:
text
/hneco currency create ...
/hneco currency edit ...
/hneco currency enable ...
/hneco currency disable ...
/hneco currency setmain ...这些命令会:
- 修改配置文件
- 保存配置
- 自动重载插件
- 同步数据库中的货币定义
也就是说:
- 运行时命令不是“只改内存”
- 而是会反写配置文件
