了解 GUI 菜单
一个 Open GUI 条目包含菜单所需的一切:窗口类型、标题、布局池以及会话选项。本页介绍相关术语以及构建菜单的顺序。
术语
| 术语 | 含义 |
|---|---|
layoutPool | 菜单中已命名的布局集合。 |
mainLayoutId | 最先绘制的布局(根布局)的 id。 |
| 布局(Layout) | 放置槽位的规则:网格、行、分页、滚动区域、框架或图层。 |
| 物品(Item) | 对一个槽位的描述:物品、名称、lore、位置、权限和点击动作。 |
| 交互(Interaction) | 某一种点击类型触发的行为:命令、触发器、关闭或返回。 |
| 会话(Session) | 某位玩家打开的菜单的状态:历史记录、当前页、滚动位置和当前视图。 |
| 视口(Viewport) | 可滚动布局中当前可见的部分。 |
构建顺序
- 创建 Open GUI 条目,然后选择
guiType、size和title。 - 添加一个带有
id的simple布局,并把该id写入mainLayoutId。 - 先添加装饰性物品(边框、背景),再添加按钮。
- 为按钮添加
interactionList条目。 - 最后再添加
frame、scrollable、paginated或views。
槽位重复
count、direction、gap 和 repeatY 用于重复放置一个物品。一个 count 为 9、direction 为 right 的物品就能铺满一行。这些字段只负责放置槽位,绝不会改变物品的堆叠数量。gap 是步长:1 表示槽位相邻,2 表示副本之间隔一个空槽。没有 direction 时,这三个字段会被忽略,只放置一个槽位。
落在网格之外的槽位会被丢弃,并在控制台中列出对应布局的 id 和坐标。
可见性与点击
criteria对不满足条件的玩家隐藏该槽位。viewPermission对没有该权限的玩家隐藏该槽位。clickPermission会绘制该槽位,但使其无法点击。allowPickup允许玩家把物品从菜单中拿出;默认关闭。
它们都是可选的,留空的权限不会限制任何内容。
打开、返回与关闭
- 任何能触发动作的条目都可以触发 Open GUI。
- 交互上的
executeReturn会返回该会话的上一个菜单。 - 交互上的
closeMenu会关闭窗口。 - 按 Escape 关闭会结束该会话。