认识替换菜单
替换菜单用于接管 Minecraft 自带的客户端页面,例如标题主菜单、游戏内 Esc 菜单、设置页、连接页和确认页。它解决的是“让整套定制客户端拥有统一菜单外观与入口”的问题,而不是在玩家进服后额外打开一张普通 ChaUI 页面。
完成配置后,玩家仍然从原来的入口进入页面:按 Esc 仍然打开暂停菜单,点击“选项”仍然进入设置,连接服务器仍然经过 Minecraft 的连接页面。ChaUI 只在目标已配置且页面有效时显示你的设计;目标未配置或替换失败时,玩家看到原版页面。
三种页面不要混淆
| 能力 | 什么时候出现 | 主要数据来源 | 适合做什么 | 失败时 |
|---|---|---|---|---|
普通页面 screen | 指令、API 或页面脚本主动打开 | 页面自己的变量与服务端业务 | 商店、任务、对话框、功能面板 | 当前页面拒绝打开或安全关闭 |
箱子与背包替换 container | 玩家打开匹配的原版容器 | 原版槽位、物品及第三方插件库存逻辑 | 重做箱子菜单、玩家背包外观 | 继续显示原版容器 |
原版菜单替换 vanilla | Minecraft 准备打开一个受支持的客户端页面 | 原版客户端、当前页面和设置状态 | 标题菜单、Esc、设置、连接与确认页面 | 恢复对应的原版页面 |
如果你的目标是替换 Bukkit 箱子菜单或玩家背包,请前往替换界面:箱子与背包。本大类只讲 display.mode: vanilla。
能替换到哪里
ChaUI 1.4.0 提供 27 个稳定目标,覆盖以下几组页面:
- 标题主菜单与游戏内暂停菜单;
- 单人游戏、创建或编辑世界;
- 多人游戏、直接连接、添加或编辑服务器;
- 总设置以及声音、视频、控制、聊天、语言、资源包和辅助功能等设置页;
- 连接、断开、加载世界、进度、确认和消息页面。
完整 ID、进入方式与返回关系见目标与返回关系。Minecraft 启动早期出现的红色加载画面不属于可替换页面。
首期是静态菜单
首期没有动态列表或重复布局组件,也不会向页面脚本提供世界列表、服务器列表和资源包列表。因此:
- 可以把标题页或多人页做成几个固定按钮,例如只加入指定服务器;
- 可以替换单人、多人或资源包页面的外观和固定入口;
- 不能在 ChaUI 页面里自动列出本地世界、已保存服务器或资源包;
- 需要完整原版动态列表时,保留该目标不替换,或用
打开原版页面(target, true)单次打开原版页面。
没有配置的目标会继续使用 Minecraft 原版页面,后续增加动态列表能力也不会破坏已经制作的静态替换页。
页面为什么还能返回和继续游戏
替换发生时,原来的 Minecraft 页面上下文仍被保留,所以页面作者不需要自己维护一套返回栈。close() 会按当前目标执行自然返回:暂停菜单继续游戏,设置子页返回父页面,确认页按取消处理。
如果页面配置无效、当前游戏版本不支持某个目标,或运行中出现关键异常,ChaUI 会恢复保留的原版页面。重复目标只影响发生冲突的目标;损坏的候选页面包则不会取代上一套有效包。
猹件开发组