跳到主要内容

商店文件

每个商店是 plugins/CloudShop/shops/ 里的一个 .yml 文件,文件名就是商店 ID(shops/blocks.yml → blocks)。 改完执行 /cs reload;用 游戏内管理介面 或 网页编辑器 改的会直接写进同一个文件。

完整范例​

shops/blocks.yml
title: '&8建材商店' # 箱子标题,可用 {page} {pages}
icon: # 主菜单上的图示
material: BRICKS # 物品来源,写法同商品的 item(也可以写 ci:… / ce:…)
name: '&6建材商店'
lore:
- '&7各种常用方块'
rows: 6 # 1 – 6 行
order: 1 # 主菜单自动排列与云界面左侧列表的顺序(小的在前)
fill: GRAY_STAINED_GLASS_PANE # 空格底色(不写 = 不填)
hidden: false # true = 不出现在主菜单,只能用 /cs open、NPC 打开
permission: '' # 进入权限(留空 = 所有人)
servers: [] # 只在这些子服开放(留空 = 全部)
type: normal # normal 一般 / rotating 轮换
discount: 0 # 全店折扣,见「折扣与限时特卖」
items:
stone: # 商品 key(同一个商店里不能重复)
slot: 10
item: STONE
amount: 64
buy: 64
sell: 8
beacon:
slot: 25
item: BEACON
buy: [5000 money, 50 points]
limit:
buy:
amount: 1
reset: weekly

商店设定​

键默认说明
title商店 ID箱子标题。支持颜色码、&#RRGGBB、MiniMessage;{page} / {pages} 显示目前页数 / 总页数
iconCHEST主菜单与云界面的图示。可以只写物品(icon: BRICKS),或写成段落:material(物品来源,也可以写 item)、name、lore
rows6箱子行数 1 – 6。2 行以上时最后一行显示 底部按钮
order0排序:主菜单自动排列(list-all-shops)、云界面左侧商店列表、网页编辑器都照这个顺序
fill不填空格子填的玻璃板(或任何材质)
hiddenfalse不出现在自动排列的主菜单与云界面列表;/cs <商店>、/cs open 仍可打开
permission留空进入权限。没有权限的玩家看不到这个商店,也不能在这里买卖或回收;cloudshop.shop.* 可以进入全部
servers全部子服名称列表(config.yml 的 server-id),只在这些子服开放;其他子服打开时提示「这个商店不在本服开放」,出售箱也不会用这个商店的回收价。写 '*' 或 all 也代表全部
typenormalrotating(或 轮换)= 轮换商店,见 轮换商店
rotation轮换设定:period、slots、per-player,只在 type: rotating 时有效
discount无全店折扣,见 折扣与限时特卖
items商品清单,每个商品的字段见 商品与物品来源

格子与多页​

  • slot 从 0 开始数:第一行是 0 – 8,第二行 9 – 17……6 行的箱子最后一格是 53。
  • 超出行数的 slot 会在 /cs reload 时警告。
  • 要第二页,商品写 page: 2;总页数 = 商品里最大的 page。2 行以上的商店最后一行会有上一页 / 下一页按钮。
  • 底部一行也可以放商品:商品占用的格子优先,按钮会让位。
  • 没有 slot(或 slot: -1)的商品不会显示,只有轮换商店会把它们当成 商品池。

文件规则​

  • 文件可以放在 shops/ 的子文件夹里整理,商店 ID 仍然是文件名,所以不同文件夹也不能同名(重复的会略过并警告)。
  • 文件名以 _ 开头的不会载入,可以用来暂时停用。
  • 文件格式错误时只略过那一个商店,/cs reload 会列出警告:
[云商城] 已重新载入:5 个商店(1 个警告)
· blocks:商品 glass 的 slot 54 超出 6 行(0 – 53)
  • 删除商店(管理介面或网页编辑器)时,文件会移到 backups/deleted/,不会直接消失。