创建
2024年10月29日大约 2 分钟
创建
基础
TrMenu 的菜单是以 YAML (.yml) 文件格式配置、读取加载的
因此,创建一个新的菜单,你可以通过新建一个 YAML 文件开始
路径
菜单文件可以放在默认菜单目录 (menus)中或自定义路径(需要自行配置)
菜单文件名(不包括拓展名后缀)即是菜单的唯一 ID,
重复 ID 的菜单仍然会被加载,但会影响开启命令的正常工作
配置
菜单的配置项将在接下来的章节详细解析
请先浏览下方所提供的示例模式,快速了解菜单基本结构
# 容器显示的标题
Title: 'TrMenu'
# 容器标题刷新的时间
Title-Update: 40
# 菜单布局
Layout: []
# 菜单布局 - 玩家容器
PlayerInventory: []
# 菜单选项
Options:
# 是否启用参数
Arguments: false
# 默认参数填充
Default-Arguments: [ ]
# 非上锁槽位
Free-Slots:
- 71
- 72
# 默认页码
Default-Layout: 0
# 是否隐藏玩家容器物品
Hide-Player-Inventory: false
# 最小点击延时
Min-Click-Delay: 200
# 强制依赖的 PlaceholderAPI 拓展
Depend-Expansions: [ 'server', 'player', 'progress', 'animations' ]
# 菜单绑定
Bindings:
# 命令
Commands:
- '(?i)example(-)?(gui)?(s)?'
# 物品特征
Items:
- 'material:compass'
- 'material:clock,lore:OPEN_MENU'
- 'texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDRmNDUyZDk5OGVhYmFjNDY0MmM2YjBmZTVhOGY0ZTJlNjczZWRjYWUyYTZkZmQ5ZTZhMmU4NmU3ODZlZGFjMCJ9fX0='
# 菜单事件反应
Events:
# 开启事件
Open:
- condition: 'perm *trmenu.use'
actions:
- 'sound: BLOCK_CHEST_OPEN-1-0'
deny:
- 'sound: ENTITY_ITEM_BREAK-1-0'
- 'title: `&c&lPermission Required` `&7&lYou need permission &6<rmenu.use &7<o open this menu` 15 20 15'
- 'return'
# 关闭事件
Close:
- 'sound: BLOCK_CHEST_CLOSE-1-0'
# 菜单的图标主体
Icons:
# 图标 Id
'Close':
# 显示属性更新频率
update: []
# 子图标重新计算频率
refresh: -1
# 显示部分
display: []
# 动作部分
actions: []
# 定时任务
Tasks:
# 任务 ID
tikTok:
# 任务周期 (in ticks)
period: 80
# 任务反应 (reactions)
task:
- condition: '$ sender.isOp()'
actions:
- 'sound: BLOCK_NOTE_BLOCK_BIT-1-2'
# 内置自定义 JavaScript 函数
Functions:
id: 'content'
结构
- 标题
- 单个或多个标题
- 标题更新周期
- 布局
- 菜单布局
- 玩家容器布局
- 选项
- 默认补全参数
- 默认布局页码
- 是否隐藏玩家容器物品
- 自由槽位
- 防频繁点击间隔
- 需要依赖的 PlaceholderAPI 拓展
- 绑定
- 绑定正则命令
- 绑定物品特征
- 事件
- 开启菜单执行动作
- 关闭菜单执行动作
- 图标
- 内置脚本
- 周期任务
菜单国际化(社区版新增)
太复杂了,自己去看TrMenu PR #64