跳到主要内容

商品与物品来源

商店文件 items: 下面的每一段是一件商品,段落名称是商品 key(同一个商店里唯一,变量与 /cs reset 用它)。

完整范例​

shops/services.yml
items:
vip:
slot: 15
item: DIAMOND_HELMET
give-item: false # 不给物品,只执行指令(物品只当图示)
display:
name: '&6VIP · 30 天'
lore:
- '&7专属称号、每日礼包'
buy: 300 points
condition: '%player_level% >= 10'
deny-message: '&c需要 10 级以上才能购买 VIP'
commands:
- 'lp user {player} parent addtemp vip 30d'
limit:
buy: {amount: 1, reset: monthly}

字段​

键默认说明
slot不显示格子位置,从 0 开始;没有 slot 的商品是 轮换商品池
page1第几页
item物品来源,见下方 物品来源
amount1每份的数量(1 – 6400)。买一份 = 给这么多个;卖一份 = 收走这么多个
display.name物品原本的名称商店里显示的名称(也可以直接写在商品下的 name)
display.lore附加在物品说明下面的文字(也可以直接写 lore)
display.icon商品物品另外用一个物品当图示,写法同 item
buy不出售买价,见 货币与价格;0 / 不写 = 不出售
sell不回收回收价;0 / 不写 = 不回收
limit.buy / limit.sell无购买 / 出售次数限制,见 限购与库存
stock无库存与补货,见 限购与库存
dynamic无动态价格,见 动态价格
discount无这件商品的折扣,见 折扣与限时特卖
permission留空购买 / 出售这件商品需要的权限
condition留空购买条件,见下方 条件
deny-message默认提示没有权限或不符合条件时的提示
commands购买后执行的指令,见下方 指令
give-itemtruefalse = 不给物品,只执行指令(卖权限、称号、服务);这种商品不能回收
weight10轮换商品池的抽中权重,见 轮换商店
max-per-purchase跟 config.yml这件商品单次最多买几份

商品说明(买入 / 回收价格、每份数量、行情、限购、库存、操作提示)由插件自动加在物品说明下面,文字在 messages.yml 的 lore 段,见 消息与文字。

单次上限​

config.yml 的 max-per-purchase: 2304 是物品个数(36 组),换算成份数:每份 64 个的商品一次最多 36 份。商品自己写 max-per-purchase: 5 时是份数,一次最多 5 份。数量选择菜单的「最多」也不会超过余额、背包空间、限购剩余与库存。

物品来源​

item: 写成下面任何一种。插件没装时这件商品显示屏障「物品不存在」,不能买卖,其他商品照常。

写法来源例子
DIAMOND原版物品(也可以写 minecraft:diamond)item: DIAMOND
ci:<ID>云物品 CloudItemsitem: 'ci:噬渊血冕'
mmoitems:<类型>:<ID>MMOItemsitem: 'mmoitems:SWORD:FIRE_BLADE'
ce:<命名空间>:<ID>CraftEngine(只写 ID 时命名空间默认 default)item: 'ce:default:ruby'
ia:<命名空间>:<ID>ItemsAdderitem: 'ia:myitems:ruby'
nexo:<ID>Nexoitem: 'nexo:ruby_sword'
mm:<ID>MythicMobs 物品item: 'mm:SkeletonKingSword'
item: {data: …}完整物品(Base64):附魔、名称、所有组件原样保存游戏内上架时自动产生
  • 有冒号的写法请加引号('ci:噬渊血冕'),避免 YAML 误读。
  • 前缀也接受全名:clouditems:、mi:、craftengine:、itemsadder:、mythicmobs:。
  • 完整物品也可以写成 item: 'data:<Base64>'。这种字串很长,建议用 游戏内管理介面 拿着物品点空格子,或 网页编辑器 的物品库产生。

回收时怎么辨认物品​

商品来源背包里的哪些物品算「这件商品」
插件物品(ci: / mmoitems: / ce: / ia: / nexo: / mm:)同一个插件 ID 的物品。随机属性、强化、宝石不同也算,所以玩家打到的装备都能卖
原版物品(DIAMOND)同材质、没有任何自订资料的物品。改过名、附过魔的不算,不会被误卖
完整物品(data)和保存的物品完全一样(名称、附魔、组件都相同)

买入不能堆叠的装备​

买入 CloudItems / MMOItems 这类不能堆叠的插件物品时,每一件都单独向插件要一件新的,属性各自随机。例如一次买 3 把随机属性的剑,会拿到 3 把属性不同的剑。 原版物品与完整物品则是同一件复制。

条件​

condition 先用 PlaceholderAPI 填入变量,再比较:

写法意思
'%player_level% >= 10'等级 10 以上
'%vault_eco_balance% > 1000'余额大于 1000
'%player_world% == world'文字相等(不分大小写)
'%player_level% >= 10 && %player_world% != world_nether'两个都要成立
'%a% == 1 || %b% == 1'其中一个成立

可用 >=、<=、>、<、==(或 =)、!=,两边都是数字时比数字,否则比文字;&& 优先于 ||。 不符合时商品说明最后一行显示原因,点击会提示 deny-message(没写时用「你还不符合购买条件」)。出售箱与一键卖出会略过不符合条件的商品。

指令​

commands 在购买成功、物品给出之后依序执行:

写法执行方式
'lp user {player} parent add vip'控制台执行(默认)
'[console] say hi'控制台执行
'[player] spawn'玩家自己执行
'[message] &a你获得了飞行权限'发送消息给玩家

可用变量:{player} 玩家名、{uuid}、{amount} 物品总数(份数 × 每份数量)、{units} 份数。指令开头的 / 可写可不写。

卖权限、称号、服务这类商品加上 give-item: false:物品只当图示,不需要背包空间。