Skip to content

Commit 4b82668

Browse files
committed
Refresh MatrixShop goods repository documentation
1 parent c87578c commit 4b82668

8 files changed

Lines changed: 156 additions & 82 deletions

File tree

docs/matrixshop/configuration-structure.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ playerpoints:
171171
- `shops/*.yml`
172172
- `ui/*.yml`
173173

174+
`SystemShop` 还额外包含:
175+
176+
- `goods/*.yml`
177+
174178
个别模块还带有额外文件:
175179

176180
- `ChestShop/signs.yml`
@@ -203,6 +207,7 @@ playerpoints:
203207
- 静态按钮
204208
- 动态槽位
205209
- 商品模板
210+
- 对 `SystemShop/goods/*.yml` 的商品引用
206211

207212
同时,**当前实现里 `shopId` 以文件名为准**。
208213

docs/matrixshop/economy-examples.mdx

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -104,20 +104,29 @@ Currency:
104104
Key: vault
105105
106106
goods:
107-
iron_sword:
108-
material: 'IRON_SWORD'
109-
amount: 1
110-
price: 120
111-
buy-max: 16
112-
name: '&f铁剑'
113-
114-
diamond_sword:
115-
material: 'DIAMOND_SWORD'
116-
amount: 1
117-
price: 420
118-
currency: playerpoints
119-
buy-max: 8
120-
name: '&b钻石剑'
107+
- iron_sword
108+
- diamond_sword
109+
```
110+
111+
```yml
112+
# SystemShop/goods/iron_sword.yml
113+
id: iron_sword
114+
material: 'IRON_SWORD'
115+
amount: 1
116+
price: 120
117+
buy-max: 16
118+
name: '&f铁剑'
119+
```
120+
121+
```yml
122+
# SystemShop/goods/diamond_sword.yml
123+
id: diamond_sword
124+
material: 'DIAMOND_SWORD'
125+
amount: 1
126+
price: 420
127+
currency: playerpoints
128+
buy-max: 8
129+
name: '&b钻石剑'
121130
```
122131

123132
最终效果:

docs/matrixshop/economy.mdx

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,17 @@ vault
117117
当前主要体现在 `SystemShop`:
118118

119119
```yml
120+
# SystemShop/shops/weapon.yml
120121
goods:
121-
diamond_sword:
122-
material: 'DIAMOND_SWORD'
123-
price: 420
124-
currency: playerpoints
122+
- diamond_sword
123+
```
124+
125+
```yml
126+
# SystemShop/goods/diamond_sword.yml
127+
id: diamond_sword
128+
material: 'DIAMOND_SWORD'
129+
price: 420
130+
currency: playerpoints
125131
```
126132

127133
### 商店级
@@ -171,7 +177,7 @@ Currency:
171177

172178
- `SystemShop` 默认使用金币
173179
- `Auction/default.yml` 使用点券
174-
- `SystemShop/shops/weapon.yml` 下某把武器单独使用点券
180+
- `SystemShop/goods/diamond_sword.yml` 单独使用点券
175181

176182
可以这样写:
177183

@@ -187,10 +193,15 @@ Currency:
187193
Key: vault
188194
189195
goods:
190-
diamond_sword:
191-
material: 'DIAMOND_SWORD'
192-
price: 420
193-
currency: playerpoints
196+
- diamond_sword
197+
```
198+
199+
```yml
200+
# SystemShop/goods/diamond_sword.yml
201+
id: diamond_sword
202+
material: 'DIAMOND_SWORD'
203+
price: 420
204+
currency: playerpoints
194205
```
195206

196207
```yml

docs/matrixshop/modules-overview.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ description: MatrixShop 各模块职责、默认文件和详细文档入口。
1313
| --- | --- | --- | --- |
1414
| `economy` | 统一货币定义与结算入口 | `Economy/currency.yml` | [经济模块](./economy) |
1515
| `menu` | 总入口导航菜单 | `Menu/settings.yml``Menu/shops/main.yml` | [Menu](./shop-types/menu) |
16-
| `system-shop` | 静态系统商店 | `SystemShop/settings.yml``SystemShop/shops/*.yml` | [SystemShop](./shop-types/system-shop) |
16+
| `system-shop` | 静态系统商店 | `SystemShop/settings.yml``SystemShop/goods/*.yml``SystemShop/shops/*.yml` | [SystemShop](./shop-types/system-shop) |
1717
| `player-shop` | 玩家个人商店 | `PlayerShop/settings.yml``PlayerShop/shops/default.yml` | [PlayerShop](./shop-types/player-shop) |
1818
| `global-market` | 全服共享市场 | `GlobalMarket/settings.yml``GlobalMarket/shops/default.yml` | [GlobalMarket](./shop-types/global-market) |
1919
| `auction` | 拍卖行 | `Auction/settings.yml``Auction/shops/default.yml` | [Auction](./shop-types/auction) |
@@ -54,7 +54,7 @@ description: MatrixShop 各模块职责、默认文件和详细文档入口。
5454
为了避免把 MatrixShop 理解成“所有模块都完全一样”,这里再强调一次:
5555

5656
- `Economy` 负责统一货币定义,不建议在业务模块里重复实现结算逻辑。
57-
- `SystemShop` 主要是静态 YAML 商品。
57+
- `SystemShop` 主要是静态 YAML 商品,推荐用 `goods/*.yml` + `shops/*.yml` 引用
5858
- `PlayerShop``GlobalMarket``Auction` 主要是运行时上架数据。
5959
- `ChestShop` 有箱子、库存、告示牌这套线下交互。
6060
- `Transaction` 不是商品市场,而是面对面交换。

docs/matrixshop/quick-start.mdx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ plugins/MatrixShop/
3131
├─ Economy/
3232
├─ Menu/
3333
├─ SystemShop/
34+
│ ├─ goods/
35+
│ ├─ shops/
36+
│ └─ ui/
3437
├─ PlayerShop/
3538
├─ GlobalMarket/
3639
├─ Auction/
@@ -46,6 +49,10 @@ plugins/MatrixShop/
4649
- `shops/*.yml`
4750
- `ui/*.yml`
4851

52+
`SystemShop` 还会额外包含:
53+
54+
- `goods/*.yml`
55+
4956
但有三个例外:
5057

5158
- `ChestShop/`:不再使用 `shops/*.yml`,只保留 `settings.yml``signs.yml``ui/*.yml`

docs/matrixshop/release-notes-1-2-0.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ description: MatrixShop 1.2.0 的新增功能、管理员商品维护流程和
1313

1414
这一版的重点不是调整玩家侧业务链,而是补齐管理员对 `SystemShop` 商品的快速维护能力。
1515

16+
> 后续主线版本已经把管理员商品流拆成 `goods save``goods add` 两步,并把商品定义优先存放到 `SystemShop/goods/*.yml`。本页保留的是 `1.2.0` 发布当时的原始流程说明。
17+
1618
## 本版本重点
1719

1820
### 管理员快速上架

docs/matrixshop/shop-types/system-shop.mdx

Lines changed: 56 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: SystemShop
3-
description: SystemShop 的默认配置、分类文件和商品字段解释
3+
description: SystemShop 的默认配置、goods 目录、分类引用和管理员维护方式
44
---
55

66
# SystemShop
@@ -10,6 +10,7 @@ description: SystemShop 的默认配置、分类文件和商品字段解释。
1010
## 默认文件
1111

1212
- `SystemShop/settings.yml`
13+
- `SystemShop/goods/*.yml`
1314
- `SystemShop/shops/weapon.yml`
1415
- `SystemShop/shops/food.yml`
1516
- `SystemShop/shops/material.yml`
@@ -121,7 +122,7 @@ icons:
121122

122123
## `SystemShop/shops/weapon.yml`
123124

124-
这是最关键的商品分类配置文件。`food.yml` 和 `material.yml` 的结构与它一致。
125+
分类文件负责页面布局、模板和商品引用。推荐写法如下:
125126

126127
```yaml
127128
id: weapon
@@ -165,47 +166,15 @@ template:
165166
- ''
166167
- '&e左键进入购买确认'
167168
169+
Currency:
170+
Key: vault
171+
168172
goods:
169-
wooden_sword:
170-
material: 'WOOD_SWORD'
171-
amount: 1
172-
price: 25
173-
buy-max: 16
174-
name: '&f木剑'
175-
lore:
176-
- '&7入门级近战武器'
177-
iron_sword:
178-
material: 'IRON_SWORD'
179-
amount: 1
180-
price: 120
181-
buy-max: 16
182-
name: '&f铁剑'
183-
lore:
184-
- '&7稳定的主力武器'
185-
diamond_sword:
186-
material: 'DIAMOND_SWORD'
187-
amount: 1
188-
price: 420
189-
buy-max: 8
190-
name: '&b钻石剑'
191-
lore:
192-
- '&7高品质近战武器'
193-
bow:
194-
material: 'BOW'
195-
amount: 1
196-
price: 180
197-
buy-max: 8
198-
name: '&6弓'
199-
lore:
200-
- '&7远程作战基础装备'
201-
arrow_bundle:
202-
material: 'ARROW'
203-
amount: 16
204-
price: 32
205-
buy-max: 64
206-
name: '&f箭矢 x16'
207-
lore:
208-
- '&7远程消耗品补给'
173+
- wooden_sword
174+
- iron_sword
175+
- diamond_sword
176+
- bow
177+
- arrow_bundle
209178
```
210179

211180
### 顶层字段解释
@@ -217,20 +186,40 @@ goods:
217186
| `layout` | `g` 是动态商品槽位,`I` 是说明,`R` 是返回。 |
218187
| `icons` | 静态图标定义。 |
219188
| `template` | 所有动态商品统一使用的名称和 Lore 模板。 |
220-
| `goods` | 静态商品列表。 |
189+
| `Currency.Key` | 当前分类的默认货币 key。 |
190+
| `goods` | 当前分类引用的商品 id 列表。 |
191+
192+
## `SystemShop/goods/diamond_sword.yml`
193+
194+
商品文件负责真正的商品定义:
221195

222-
### `goods.*` 字段解释
196+
```yaml
197+
id: diamond_sword
198+
material: 'DIAMOND_SWORD'
199+
amount: 1
200+
price: 420
201+
buy-max: 8
202+
name: '&b钻石剑'
203+
lore:
204+
- '&7高品质近战武器'
205+
```
206+
207+
### 商品字段解释
223208

224209
| 字段 | 说明 |
225210
| --- | --- |
211+
| `id` | 商品 id,通常与文件名一致。 |
226212
| `material` | 商品材质。 |
213+
| `item` | 更高保真的物品定义,可覆盖基础材质展示。 |
227214
| `amount` | 每次购买给多少个。 |
228215
| `price` | 单次交易价格。 |
229216
| `buy-max` | 单次购买的最大数量或上限展示值。 |
230217
| `name` | 商品显示名。 |
231218
| `lore` | 商品说明。 |
232219
| `currency` | 商品级货币 key。可选;只有你想覆盖默认货币时才需要写。 |
233220

221+
> 兼容说明:旧版 `SystemShop/shops/*.yml` 中直接内联 `goods.<id>` 的写法仍然可读取,但新配置应优先拆到 `SystemShop/goods/*.yml`。
222+
234223
## 当前货币优先级
235224

236225
`SystemShop` 当前采用:
@@ -240,10 +229,31 @@ goods:
240229
3. `SystemShop/settings.yml` 里的 `Currency.Key`
241230
4. 默认回退 `vault`
242231

232+
## 管理员商品维护
233+
234+
当前后台命令流已经拆成两步:
235+
236+
1. 保存商品定义到 `goods` 仓库
237+
2. 把已保存商品挂到某个系统商店分类
238+
239+
命令如下:
240+
241+
- `/matrixshopadmin goods ui [page]`
242+
- `/matrixshopadmin goods save <price> [buy-max] [product-id]`
243+
- `/matrixshopadmin goods add <category> <product-id>`
244+
- `/matrixshopadmin goods select <category> <product-id>`
245+
- `/matrixshopadmin goods edit <price|buy-max|currency|name|item|remove> ...`
246+
247+
其中:
248+
249+
- `goods save` 只写 `SystemShop/goods/*.yml`
250+
- `goods add` 只负责把商品 id 引用进分类文件的 `goods:`
251+
- `goods edit remove` 只会把商品从当前分类下架,不会删除 `goods` 仓库里的文件
252+
243253
## 你应该怎么改
244254

245255
- 想新增一个分类:复制一份 `shops/weapon.yml`,改文件名,再把 `ui/shop.yml` 的按钮指过去。
246-
- 想新增一个商品:直接在 `goods:` 下加一项
256+
- 想新增一个商品:新建 `SystemShop/goods/<product-id>.yml`,然后把 id 加到对应分类的 `goods:` 列表里
247257
- 想改默认打开的分类:改顶层 `config.yml` 的 `system-shop.default-category`。
248258

249259
## 相关文件
@@ -252,4 +262,4 @@ goods:
252262
- `SystemShop/shops/material.yml`
253263
- `SystemShop/ui/confirm.yml`
254264

255-
通常先改 `shops/*.yml`,只有在你想重做分类入口和确认流程时,才需要再动 `ui/*.yml`。
265+
通常先改 `goods/*.yml` 和 `shops/*.yml`,只有在你想重做分类入口和确认流程时,才需要再动 `ui/*.yml`。

0 commit comments

Comments
 (0)