货币与价格
后端探测
PlayerCurrency、XConomy 和 Vault 独立探测,不是“只选择一个全局后端”。每种支付操作都保留自己的支付 ID,并由对应后端完成余额、扣款和退款。
| 后端 | 规范支付 ID | 说明 |
|---|---|---|
| PlayerCurrency | playercurrency:<type> | <type> 是 PlayerCurrency 货币类型;当前 Long API 按整数金额处理 |
| XConomy | xconomy | 直接使用 XConomy API |
| Vault | vault | 使用当前注册的 Vault Economy provider |
若 Vault provider 就是 XConomy,只显示 xconomy,避免同一账户重复出现。界面只列出当前箱已经添加且此刻可用的支付方式。
新箱默认支付方式
- PlayerCurrency 可用时:按
economy.player-currency.currencies白名单加入类型;空列表表示加入发现到的全部类型。新箱不会同时自动加入 XConomy/Vault,但管理员仍可手动添加。 - PlayerCurrency 不可用时:优先加入 XConomy;XConomy 不可用时再加入 Vault。
- 没有任何经济后端时:新箱没有付费选项,但插件、预览和已有有效钥匙仍可使用。
箱级管理
瞄准六格内抽奖箱后执行:
/lb addcurrency <xconomy|vault|playercurrency:type>
/lb removecurrency <currency>
/lb setcurrency <currency> <amount>
addcurrency只接受当前检测到的后端或有效 PlayerCurrency 类型,并防止重复添加。removecurrency只从当前箱移除 ID;即使后端暂时不可用,也可按已保存 ID 移除。setcurrency只为已加入当前箱的支付方式设置独立价格,金额必须是不小于零的有效数字。- 添加货币不会自动写入独立价格;未设置时继续走后备规则。
- 直接抽一次与购买一把钥匙共用同一个实际价格。
价格优先级
插件按以下固定顺序取第一个可用值:
- 当前箱子的箱级货币独立价格,即
/lb setcurrency设置的值; economy.player-currency.costs中对应类型的 PlayerCurrency 配置价格;- 当前箱子的箱级后备基础价格,即
/lb setcost设置的值; - 全局
lottery.cost。
因此,同一个箱子的 playercurrency:point 与 xconomy 可以有不同价格;没有独立价格时才继续向下查找。价格为零时可开始免费流程,不调用经济扣款。
后端不可用与恢复
当某个经济后端暂时不可用时,箱内对应 ID 不会被自动删除,但 GUI 会隐藏不可用选项。恢复插件或 provider 后执行:
/lb reload
这会重载配置、重新探测经济后端并刷新全息。随后用 /lb info 核对支付 ID、实际价格、价格来源、经济后端和可用状态。
没有后端时可做什么
- 左键预览奖品;
- 管理员编辑、复制和检查箱子;
- 使用绑定正确箱子的已有钥匙;
- 不能通过 DIRECT 扣款抽奖,也不能在 KEY 模式购买新钥匙。
自动退款走原经济后端、原货币与原金额。退款失败会触发 refund-failed 消息和严重日志,需要管理员人工对账,详见支付与结算安全。