绑定与 UI
绑定来源
MatrixShop 当前的命令绑定主要来自两类配置:
- 模块级
settings.yml - 入口级
shops/*.yml
其中:
ChestShop / Cart / Record仍主要由settings.yml驱动Menu / SystemShop / PlayerShop / GlobalMarket / Auction / Transaction主要由shops/*.yml驱动
当前绑定写法
MatrixShop 1.8.0 开始,绑定方式改成类似 TrMenu 的直接文本风格:
Bindings:
Commands:
- "trade"
- "tm"
Register: true
Show-In-Help: true
Priority: 100
这表示:
Commands:直接写绑定命令列表Register:是否注册为独立命令Show-In-Help:是否在帮助里显示Priority:冲突时优先级
不再需要先去 Lang/*.yml 里维护 commands.routes.xxx 再间接引用。
路由级写法
子命令路由也支持直接写文本:
Routes:
open:
Action: transaction.open
Bindings:
- "open"
这类配置主要用于 /trade open、/cart checkout 这样的模块内路由。
菜单结构
典型菜单文件仍然由这些字段组成:
Title:
- "&8Global Market &7{page}/{max-page}"
layout:
- "#########"
- "#ggggggg#"
icons:
"#":
material: "STAINED_GLASS_PANE"
name: " "
"g":
material: "AIR"
mode: "goods"
关键规则:
layout每行 9 格icons的字符与布局字符一一对应- 带
mode的槽位通常由模块代码动态填充 - 不带
mode的槽位由菜单系统静态渲染
动作执行
当前 ActionExecutor 支持:
closebacktell:...sound:...player:...console:...js:...kether: ...
推荐优先使用 kether: 写业务动作。
推荐写法
actions:
left:
- "kether: matrixshop system open weapon"
不推荐写法
actions:
left:
- "kether: command \"weapon\" by player"
后者虽然旧版可工作,但已经不是 1.8.0 推荐路径。
shopId 规则
当前实现里,shopId 默认取自文件名,而不是依赖 YAML 内部 id 字段:
shops/<file-name>.yml
例如:
PlayerShop/shops/default.yml->defaultMenu/shops/main.yml->main
重载与重启
/matrixshopadmin reload 可以刷新大部分配置,但对于“独立命令注册”本身,仍建议完整重启服务器后再验证。