限时商店
limit_time / limit-time 是带过期时间的购买型商店。它和 普通商店 走同一套商品购买体验,但额外读取 time 字段,到期后会自动拒绝打开。
适用场景
- 节日活动商店、限时折扣商店。
- 限量抢购:配合
limitation.global做全服库存。 - 赛季货架:配合
item_count_limit、trade_amount_limit和标题倒计时提示玩家剩余时间。 - 限时随机商店:配合
refresh、random_pool、random_price做随机活动货架。
关键配置
| 字段 | 说明 |
|---|---|
mode | limit_time、limit-time 或 LIMIT_TIME |
currency | 必填;和普通商店一样负责扣款 |
goods | 必填;读取 goods/*.yml 商品或随机池 |
goods.*.currency | 与普通商店一致,可单独覆盖某个商品使用的货币 |
time | 必填;到期时间,支持 yyyy-MM-dd HH:mm:ss 字符串或毫秒时间戳 |
title | 可使用 {page} / {max-page},当前限时 UI 还支持 {countdown} |
limitation | 商品级限购;可用于限时活动里的个人/全局购买次数 |
refresh | 可选;用于限时随机商品,不等同于 time 到期时间 |
功能继承
限时商店继承普通购买链路中的这些能力:
| 功能 | 说明 |
|---|---|
| 购买与确认 | 商品点击后购买或进入确认界面 |
| 购物车 | 支持加入购物车并统一结算 |
| 收藏与赠送 | 支持收藏商品;符合条件的商品可赠送给其他玩家 |
| 搜索 | malkuth search 会进入普通/限时商店的通用搜索 |
| 限购与动态价格 | 支持 limitation、item_count_limit、trade_amount_limit、dynamic_price |
| 随机商品 | 支持 refresh + random_pool / random_price |
配置示例
下面节选自默认 shop/limit_shop.yml:
mode: LIMIT_TIME
currency:
mode: "vault"
# 限时至 yyyy-MM-dd HH:mm:ss
# 或者直接填写毫秒时间戳,如 1740672000000
time: "2099-12-31 23:59:59"
display: '&c限时商店'
title: '限时商城'
layout:
- '#########'
- ' g g g g '
- 'P#######N'
goods:
1:
id:
- 属性1
- item1
amount: 1
price: 100
display:
lore:
- '购买可同时获得'
- '{lore_1}'
- '——————————'
- '{lore_2}'
2:
id: item1
amount: 2
if: 'perm vip'
price: 150
limitation:
player: 10
当前实现注意点
time是结束时间,不是刷新周期;随机商品周期请使用refresh。- 商店到期后会在打开前被拦截,
enable通过也不会继续进入界面。 goods.*.currency的优先级与普通商店一致:商品级优先于商店级;自定义 PAPI 货币更推荐引用currency.yml中已定义好的 key。buy.mode: items当前只支持normal,不要写在限时商店里。- 如果要在标题显示倒计时,请把
{countdown}写进title,并准备好到期后的on_disable提示。