Skip to content

商店配置

商店文件放在 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-conditionbuy-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"