📁 菜单文件结构¶
📂 文件夹布局¶
所有菜单文件统一存放在 plugins/KaMenu/menus/ 目录下,支持任意层级的子文件夹结构:
plugins/KaMenu/menus/
├── main_menu.yml # 根目录菜单
├── server_shop.yml # 根目录菜单
├── example/ # 示例文件夹
│ └── actions_demo.yml # 演示菜单
├── shop/ # 商店文件夹
│ ├── main.yml # 商店主菜单
│ ├── weapons.yml # 武器商店
│ └── armor.yml # 护甲商店
└── admin/ # 管理员工具文件夹
└── tools.yml # 管理工具
🎯 菜单 ID 规则¶
菜单 ID 由文件路径决定:
-
根目录菜单:直接使用文件名(不含
.yml) -
子文件夹菜单:使用
/分隔的相对路径
✏️ 添加自定义菜单¶
- 在
plugins/KaMenu/menus/下创建.yml文件(可以按需创建子文件夹) - 按照菜单配置格式编写内容(参见后续章节)
- 执行
/km reload重新加载
文件命名说明:
- ✅ 支持中文文件名和文件夹名
- ⚠️ 文件扩展名必须是
.yml(不是.yaml) - ⚠️ 路径分隔符使用
/,不使用\
📝 Tab 补全¶
输入 /km open 后按 Tab 键,会自动列出所有已加载的菜单 ID,包括子文件夹路径:
📄 菜单文件基础结构¶
一个完整的菜单 YAML 文件的基本结构如下:
# 菜单标题(支持颜色代码和条件判断)
Title: '&6菜单标题'
# 可选:全局设置
Settings:
can_escape: true # 是否允许按 ESC 关闭
after_action: CLOSE # 按钮动作执行后的行为
# 可选:JavaScript预定义函数
JavaScript:
test: |
player.sendMessage("§aHello, " + name + "!");
# 可选:菜单事件
Events:
Open: # 开启菜单时执行的动作
- 'tell: &a欢迎!'
# 可选:内容展示区(纯文字、物品展示等)
Body:
...
# 可选:输入组件区(文本框、滑块、下拉框、复选框)
Inputs:
...
# 可选:底部按钮区(确认/取消/多按钮等)
Bottom:
type: 'notice' # notice | confirmation | multi
...
信息
只有 Title 节点是必需的,其他所有节点都是可选的。您可以根据需要添加相应的功能。
🎨 菜单文件节点说明¶
Title - 菜单标题¶
必需的顶层节点,定义菜单显示的标题。
格式:
- 单行文本:
Title: '&6菜单标题' - 条件判断:支持根据不同条件显示不同标题
示例:
Settings - 全局设置¶
配置菜单的全局行为参数。
配置项:
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
can_escape |
Boolean |
true |
是否允许玩家通过 ESC 键关闭菜单 |
after_action |
String |
CLOSE |
点击按钮执行动作后的客户端行为 |
详细说明和示例: 详见 ⚙️ 全局设置 (Settings)
JavaScript - 预定义函数¶
预定于JavaScript代码函数,可在动作中调用。
示例:
JavaScript:
show_health: |
var health = player.getHealth();
var maxHealth = player.getMaxHealth();
player.sendMessage("§eHealth: §f" + health + "/" + maxHealth);
在动作中调用
详细说明和示例: 详见 🔧 JavaScript 预定义函数 (JavaScript)
Events - 菜单事件¶
定义菜单在特定时刻执行的动作。
支持的事件:
| 事件名 | 触发时机 |
|---|---|
Open |
玩家打开菜单时 |
Close |
玩家关闭菜单时 |
示例:
详细说明和示例: 详见 🎯 菜单事件 (Events)
Body - 内容展示区¶
在菜单主体区域显示各种内容,如纯文字消息和物品展示。
组件类型:
message- 纯文字消息item- 物品展示
详细说明和示例: 详见 🧩 内容组件 (Body)
Inputs - 输入组件区¶
提供用户输入组件,如文本框、滑块、下拉框等。
组件类型:
input- 文本输入框slider- 滑块dropdown- 下拉选择框checkbox- 复选框
详细说明和示例: 详见 ⌨️ 输入组件 (Inputs)
Bottom - 底部按钮区¶
配置菜单底部的按钮,支持多种布局类型。
布局类型:
notice- 通知类型(单个确认按钮)confirmation- 确认类型(确认和取消按钮)multi- 多按钮类型(自定义多个按钮)
详细说明和示例: 详见 📋 底部按钮 (Bottom)
🚀 下一步¶
了解菜单文件结构后,您可以:
- 创建您的第一个菜单:查看 📝 创建菜单教程
- 深入了解各个组件:阅读对应的详细文档
- 探索高级功能:条件判断、数据存储、动作系统等
提示
建议从 📝 创建菜单教程 开始,跟随教程一步步创建您的第一个菜单!