Skip to content

Commit 8fa734c

Browse files
author
54895y
committed
docs: update MatrixShop 1.8.0 release notes
1 parent 76071f2 commit 8fa734c

8 files changed

Lines changed: 496 additions & 611 deletions

File tree

Lines changed: 78 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,126 +1,135 @@
11
---
22
title: 绑定与 UI
3-
description: MatrixShop 的命令绑定、菜单布局与动作执行规则
3+
description: MatrixShop 的绑定配置、菜单结构和动作执行模型
44
slug: /matrixshop/bindings-and-ui
55
sidebar_position: 6
66
---
77

88
# 绑定与 UI
99

10-
## 命令绑定来源
10+
## 绑定来源
1111

12-
MatrixShop 的命令不只来自固定代码,还来自配置
12+
MatrixShop 当前的命令绑定主要来自两类配置
1313

1414
1. 模块级 `settings.yml`
1515
2. 入口级 `shops/*.yml`
1616

17-
模块级绑定由 `ModuleBindings` 读取,入口级绑定由 `ShopMenuLoader` 读取。
17+
其中:
1818

19-
## 绑定字段
19+
- `ChestShop / Cart / Record` 仍主要由 `settings.yml` 驱动
20+
- `Menu / SystemShop / PlayerShop / GlobalMarket / Auction / Transaction` 主要由 `shops/*.yml` 驱动
2021

21-
这组字段在模块和入口里通用:
22+
## 当前绑定写法
2223

23-
```yaml
24+
MatrixShop 1.8.0 开始,绑定方式改成类似 TrMenu 的直接文本风格:
25+
26+
```yml
2427
Bindings:
2528
Commands:
26-
Bindings:
27-
- 'market'
28-
- 'gm'
29-
Register: true
30-
Show-In-Help: true
31-
Priority: 100
29+
- "trade"
30+
- "tm"
31+
Register: true
32+
Show-In-Help: true
33+
Priority: 100
3234
```
3335
34-
含义
36+
这表示
3537
36-
- `Bindings`:命令关键字列表
38+
- `Commands`:直接写绑定命令列表
3739
- `Register`:是否注册为独立命令
38-
- `Show-In-Help`是否出现在 `/ms help`
40+
- `Show-In-Help`是否在帮助里显示
3941
- `Priority`:冲突时优先级
4042

41-
如果你需要:
42-
43-
- 自定义多行帮助
44-
- 自定义帮助描述键
45-
- 自定义子命令提示键
46-
47-
请继续看:
43+
不再需要先去 `Lang/*.yml` 里维护 `commands.routes.xxx` 再间接引用。
4844

49-
- [Help、Help-Key 与 Hint-Keys](./bindings-help-and-hints)
45+
## 路由级写法
5046

51-
## `shopId` 规则
47+
子命令路由也支持直接写文本:
5248

53-
当前实现里,`shopId` 不再依赖 YAML 内部的 `id` 字段,而是直接取:
54-
55-
```text
56-
shops/<file-name>.yml
49+
```yml
50+
Routes:
51+
open:
52+
Action: transaction.open
53+
Bindings:
54+
- "open"
5755
```
5856

59-
例如:
60-
61-
- `PlayerShop/shops/default.yml` -> `default`
62-
- `Menu/shops/main.yml` -> `main`
63-
64-
这条规则非常重要,因为它会影响:
65-
66-
- `/ms open <shop-id>`
67-
- `/ms open <type:id>`
68-
- 多商店模块的数据作用域
57+
这类配置主要用于 `/trade open`、`/cart checkout` 这样的模块内路由。
6958

7059
## 菜单结构
7160

72-
菜单文件的核心字段如下
61+
典型菜单文件仍然由这些字段组成
7362

74-
```yaml
63+
```yml
7564
Title:
76-
- '&8Global Market &7{page}/{max-page}'
65+
- "&8Global Market &7{page}/{max-page}"
7766
7867
layout:
79-
- '#########'
80-
- '#ggggggg#'
68+
- "#########"
69+
- "#ggggggg#"
8170
8271
icons:
83-
'#':
84-
material: 'STAINED_GLASS_PANE'
85-
name: ' '
86-
'g':
87-
material: 'AIR'
88-
mode: 'goods'
72+
"#":
73+
material: "STAINED_GLASS_PANE"
74+
name: " "
75+
"g":
76+
material: "AIR"
77+
mode: "goods"
8978
```
9079

91-
### 关键规则
80+
关键规则
9281

9382
- `layout` 每行 9 格
94-
- `icons` 里每个字符都对应一种图标定义
95-
- 带 `mode:` 的格子会交给模块代码渲染动态内容
96-
- 没有 `mode:` 的格子会按静态图标直接渲染
83+
- `icons` 的字符与布局字符一一对应
84+
- 带 `mode` 的槽位通常由模块代码动态填充
85+
- 不带 `mode` 的槽位由菜单系统静态渲染
9786

98-
## 动作语法
87+
## 动作执行
9988

100-
`ActionExecutor` 当前支持这些动作
89+
当前 `ActionExecutor` 支持
10190

10291
- `close`
10392
- `back`
104-
- `tell:消息`
105-
- `sound:SOUND-VOLUME-PITCH`
106-
- 其他任意字符串:作为玩家命令执行
93+
- `tell:...`
94+
- `sound:...`
95+
- `player:...`
96+
- `console:...`
97+
- `js:...`
98+
- `kether: ...`
10799

108-
例如:
100+
推荐优先使用 `kether:` 写业务动作。
109101

110-
```yaml
102+
### 推荐写法
103+
104+
```yml
105+
actions:
106+
left:
107+
- "kether: matrixshop system open weapon"
108+
```
109+
110+
### 不推荐写法
111+
112+
```yml
111113
actions:
112114
left:
113-
- 'matrixshop open systemshop:weapon'
114-
- 'sound:ui_button_click-1-1'
115+
- "kether: command \"weapon\" by player"
115116
```
116117

117-
这意味着大多数按钮跳转其实都是“把一条命令当动作执行”,而不是写死在 UI 系统里
118+
后者虽然旧版可工作,但已经不是 1.8.0 推荐路径
118119

119-
## 重载与重启的区别
120+
## shopId 规则
120121

121-
`/matrixshopadmin reload` 会重新加载配置和模块,但有一个边界要注意:
122+
当前实现里,`shopId` 默认取自文件名,而不是依赖 YAML 内部 `id` 字段:
123+
124+
```text
125+
shops/<file-name>.yml
126+
```
127+
128+
例如:
129+
130+
- `PlayerShop/shops/default.yml` -> `default`
131+
- `Menu/shops/main.yml` -> `main`
122132

123-
- `/ms` 这种主入口绑定可以随重载更新
124-
- 独立命令注册只发生在插件启动时
133+
## 重载与重启
125134

126-
所以如果你改了 `Bindings.Commands.Register` 或独立命令关键字,最好完整重启服务器
135+
`/matrixshopadmin reload` 可以刷新大部分配置,但对于“独立命令注册”本身,仍建议完整重启服务器后再验证

0 commit comments

Comments
 (0)