LogoArcartX Doc

兑换系统

配置货币汇率、最小兑换量与周期额度

兑换系统允许玩家按固定规则,将一种货币兑换为另一种货币。规则统一写在 plugins/Rondo/exchange.yml

配置示例

exchanges:
  honor_to_gold:
    from: honor
    to: gold
    # 消耗 rate 个源货币,获得 1 个目标货币
    rate: 0.1
    # 最小目标货币数量
    min-amount: 100
    # 每周期最多兑换多少目标货币;-1=无限
    max-per-period: -1
    # NONE / DAILY / WEEKLY / MONTHLY
    period: NONE
    enabled: true

规则 ID、源货币和目标货币统一使用小写。


汇率怎么算

rate 表示获得 1 单位目标货币需要消耗多少源货币:

源货币消耗 = 目标货币数量 × rate

例如 rate: 0.1 时,兑换 500 金币需要 50 荣誉点。

/money exchange honor gold 500

最后一个参数表示希望获得的目标货币数量,不是投入的源货币数量。


周期额度

max-per-period 本周期可兑换的最大目标货币数量

period重置时间
NONE不启用周期限制
DAILY服务端 JVM 系统时区每日 00:00
WEEKLY服务端 JVM 系统时区每周一 00:00
MONTHLY服务端 JVM 系统时区每月 1 日 00:00

只有 max-per-period 为正数且 period 不是 NONE 时,周期额度才生效。 周期边界使用 ZoneId.systemDefault(),修改服务器时区后应完整重启,并确保所有跨服节点使用相同时区。

API 调用

import priv.seventeen.artist.rondo.api.RondoAPI
import java.math.BigDecimal
 
val result = RondoAPI.exchange(
    playerUuid,
    "honor_to_gold",
    BigDecimal("500")
)
 
if (result.success) {
    logger.info("消耗 ${result.fromAmount},获得 ${result.toAmount}")
}

完整方法见 RondoAPI

On this page