回收兑换商店
recycle_shop / recycle-shop 会被解析为独立的 RECYCLE_SHOP 模式,但当前实际打开后仍复用 回收商店 的同一套回收会话。
适用场景
- 你希望在配置中保留
recycle_shop这个模式值,用来区分“回收入口”和普通recycle入口。 - 你希望强制该回收入口必须配置
currency,让展示、余额占位或自定义脚本有明确货币上下文。 - 你从旧配置迁移而来,已有
mode: recycle_shop/recycle-shop的写法。
与 recycle 的真实差别
| 项目 | recycle | recycle_shop |
|---|---|---|
| 会话实现 | RecycleShopSession | RecycleShopSession |
recycle.* 配置 | 生效 | 生效 |
goods.*.id | 指向 recycle/*.yml 规则 ID | 指向 recycle/*.yml 规则 ID |
| 图标动作 | 单条/一键/同类/预览/撤回 | 单条/一键/同类/预览/撤回 |
currency | 当前可以省略 | 必须配置,否则商店序列化失败 |
| 默认示例 | shop/recycle_shop.yml 默认写的是 mode: RECYCLE | 默认资源没有单独 mode: RECYCLE_SHOP 示例 |
推荐配置方式
默认 shop/recycle_shop.yml 是推荐回收商店模板。如果你确实需要进入 RECYCLE_SHOP 模式,只需要在该模板基础上把模式行改成:
mode: recycle_shop
currency:
mode: vault
其余 recycle、layout、goods、icons 写法继续沿用 回收商店。
必备配置
| 字段 | 说明 |
|---|---|
mode | recycle_shop、recycle-shop 或 RECYCLE_SHOP |
currency | 必填;这是它和 recycle 当前最重要的差异 |
goods | 必填;每个 goods.*.id 指向 recycle/*.yml 规则 ID |
recycle.* | 与 recycle 模式完全共用,包括保护、撤回、消息、商店级限制等 |
target_inventory | 可选;指定回收目标背包源 |
当前实现注意点
recycle_shop不是普通购买商店,也不会读取goods/*.yml商品。price仍主要用于展示层变量,最终奖励以回收规则rewards为准。- 当前没有单独的
RECYCLE_SHOPUI、结算链路或专属动作;它只是模式值不同且强制要求currency。 - 规则匹配能力与
recycle完全一致,当前同样支持source/item_source与nbt匹配。 - 如果你不需要这个“必须配置货币”的边界,直接使用默认
mode: RECYCLE更简单。