商店配置
商店文件放在 shop/ 目录下。每个 YAML 文件可以配置一个商店。
商店基础字段
| 字段 | 说明 |
|---|---|
id | 商店 ID,用于指令和数据保存,开放后不要随意修改 |
name | 商店标题 |
permission | 打开商店需要的权限,可删除 |
size | 商店行数,支持 1-12 |
discount | 商店全局折扣条件 |
open-shop-command | 打开商店时执行指令 |
close-shop-command | 关闭商店时执行指令 |
折扣写法:
yaml
discount:
- "permission:{lshop.buy.7}<->0.12"满足条件后按对应倍率计算价格,多个折扣会取更低倍率。
商品字段
| 字段 | 说明 |
|---|---|
slot | 商品所在槽位 |
show-item | 展示物品 |
give-item | 购买后发放的物品 |
amount | 发放数量 |
force-need-slot | 是否强制背包至少有一个空位 |
show-condition | 商品显示条件 |
buy-condition | 购买前置条件 |
buy-currency | 购买消耗 |
buy-command | 购买后执行指令 |
weight-command | 购买后按权重执行指令 |
player-limit-tag | 个人限购标记 |
server-limit-tag | 全服限购标记 |
extra-lore | 追加到展示物品的描述 |
展示物品
show-item 支持简单字符串,也支持物品节点。
yaml
show-item:
id: "160:0"
name: "&a按钮"
lore:
- ""
- "&7这是一个简单的按钮"对接物品库时可以写:
yaml
show-item: "MythicMobs#测试"
give-item: "MythicMobs#测试"示例中还出现了 NeigeItems#、SX-Item# 写法。
购买条件
show-condition 和 buy-condition 支持:
| 写法 | 说明 |
|---|---|
papi:{%player_level% >= 0} | PlaceholderAPI 表达式 |
permission:{lshop.buy} | 拥有权限 |
nopermission:{lshop.buy} | 没有权限 |
buy-condition 格式:
yaml
buy-condition:
- "&7需要: 等级大于3级才可购买<->papi:{%player_level% > 3}<->&c购买失败! 你需要等级大于3级才可购买!"三段分别是展示文本、判断条件、失败提示。
购买货币
buy-currency 常用写法:
| 写法 | 说明 |
|---|---|
vault:1 | 消耗 Vault 金币 |
point:<1+(%player_level%*5)> | 消耗点券,支持变量和四则运算 |
id:1:0:1 | 消耗原版物品 ID |
item:&6测试:2 | 按物品名消耗 |
item:&6测试:&7这是lore:2 | 按物品名和描述消耗 |
item::&7这是lore:2 | 按描述消耗 |
item:contain@物品名:contain@lore:2 | 关键词匹配物品名和描述 |
item:equals@物品名:equals@lore:2 | 完全匹配物品名和描述 |
jb:5 | 消耗 register-currency 注册的货币 |
cx:变量id:数量 | 消耗变量货币 |
购买指令
支持三种执行身份:
yaml
buy-command:
- "[console]spawn %player_name%"
- "[op]spawn %player_name%"
- "[player]spawn %player_name%"指令中还支持 eval:{}、ceil:{}、floor:{} 计算片段。
权重指令
yaml
weight-command:
权重组1:
- "30#[console]tell %player_name% 权重组1的指令1"
- "30#[op]tell %player_name% 权重组1的指令2"每个分组会按权重抽取执行。
购买时间
| 字段 | 说明 |
|---|---|
can-be-purchased-time-start | 指定开始购买时间 |
can-be-purchased-time-end | 指定结束购买时间 |
every-day-open-time | 每日开放时间段 |
示例:
yaml
can-be-purchased-time-start: "2022-12-3-5-25-20"
can-be-purchased-time-end: "2032-12-3-6-25-20"
every-day-open-time: "00:00-23:59"