成交税
Malkuth 的成交税用于玩家之间的交易抽成,当前会在玩家商店、全球市场和拍卖行这类“卖家收款”的场景中计算。买家仍按原价付款,卖家实际获得 原价 - 税费,税收流水会写入数据库,方便服主按商店、模式或玩家查看统计。
适用场景
- 玩家商店、全球市场、拍卖行需要从成交额中抽取服务器税费。
- VIP、赞助玩家需要按权限降低税率或免税。
- 服主需要统计最近 7 天、30 天的交易额、税收和卖家实收。
配置位置
税收配置写在具体 shop/*.yml 商店文件中,字段名为 tax。默认 shop/global_market.yml 与 shop/auction.yml 已提供示例:
tax:
enabled: false
rate: 0.0
# exemptions:
# vip:
# permission: 'malkuth.tax.vip'
# priority: 100
# mode: REDUCE_RATE
# value: 0.5
# sponsor:
# permission: 'malkuth.tax.sponsor'
# priority: 200
# mode: OVERRIDE_RATE
# value: 0.0
| 字段 | 说明 |
|---|---|
tax.enabled | 是否启用成交税,默认关闭 |
tax.rate | 基础税率;0.05 表示 5%,也兼容写 5 表示 5% |
tax.exemptions.<key>.permission | 命中该减免规则所需权限 |
tax.exemptions.<key>.priority | 规则优先级,数值越大越先判断;同优先级按 key 排序 |
tax.exemptions.<key>.mode | REDUCE_RATE 按比例降低基础税率,OVERRIDE_RATE 直接覆盖最终税率 |
tax.exemptions.<key>.value | 减免值;和 rate 一样支持 0.5 或 50 这类写法 |
减免示例
tax:
enabled: true
rate: 0.05
exemptions:
vip:
permission: 'malkuth.tax.vip'
priority: 100
mode: REDUCE_RATE
value: 0.5
sponsor:
permission: 'malkuth.tax.sponsor'
priority: 200
mode: OVERRIDE_RATE
value: 0.0
上面配置表示:
- 普通玩家成交税为 5%。
- 有
malkuth.tax.vip的玩家税率降低 50%,最终税率为 2.5%。 - 有
malkuth.tax.sponsor的玩家最终税率直接覆盖为 0%,也就是免税。 - 如果玩家同时命中多个规则,只使用优先级最高的第一条规则。
可用占位符
税收结果会在相关 UI、公告和结算提示中提供下列变量:
| 变量 | 说明 |
|---|---|
{tax_rate} | 最终税率百分比文本,例如 5 |
{tax_amount} | 本次税费金额 |
{seller_income} | 卖家实收金额 |
{tax_exemption} | 命中的减免规则 key;未命中为空 |
{tax_exemption_mode} | 命中的减免模式;未命中为空 |
税务报表命令
所有税务命令权限为 malkuth.admin.tax,默认 OP。
| 命令 | 说明 |
|---|---|
/malkuth tax report [商店/all] [天数] [模式/all] | 查看指定范围内的交易总数、成交额、税收、卖家实收和平均税率 |
/malkuth tax player <玩家> [天数] [模式/all] | 按卖家视角查看某个玩家的税收报表 |
/malkuth tax buyer <玩家> [天数] [模式/all] | 按买家视角查看某个玩家参与的税收报表 |
/malkuth tax top [商店/all] [天数] [模式/all] | 查看卖家税收排行,最多显示前 10 名 |
/malkuth tax shoptop [天数] [模式/all] | 查看商店税收排行,最多显示前 10 个商店 |
模式 当前支持 PLAYER、GLOBAL_MARKET、AUCTION 或 all。不填写天数时默认统计最近 30 天。
当前实现注意点
- 税收只影响卖家实收,不会让买家额外多付。
- 税收流水依赖数据库初始化完成;报表命令会异步查询,不会直接卡主线程。
rate与减免value都会被限制在0.0~1.0,写5会自动按 5% 处理。- 玩家商店、全球市场、拍卖行都会写入税收流水;普通固定商店没有卖家,不属于成交税统计场景。
- 税费本身目前作为统计流水记录,不会自动发放给某个“国库账户”。