Skip to content
On this page

认识自动替换 ​

自动替换用于接管玩家原本会看到的生存背包或箱子界面。它最重要的用途,是美化已经存在的第三方插件菜单:插件继续创建原版箱子、摆放菜单物品并监听库存事件,ChaUI 根据页面规则自动替换外观。

第三方插件不需要调用 ChaUI API,也不需要知道页面 ID。管理员只要制作并保存替换页面,玩家下一次打开匹配容器时就会自动看到新界面。

当前支持范围 ​

目标target当前范围
生存背包player_inventory生存模式玩家背包,包括背包、主副手、盔甲和合成区域。
通用箱子chest顶部区域为 1 至 6 行的通用箱子界面,包括许多插件创建的菜单。

创造模式背包、熔炉、铁砧、锻造台和村民交易等专用界面不属于第一版自动替换范围。未支持的界面会继续显示原版页面。

一次打开会发生什么 ​

  1. 玩家或第三方插件打开原版背包/箱子。
  2. 客户端用标题、行数和优先级寻找候选页面。
  3. 服务端根据玩家当前真实容器再次确认。
  4. 确认成功后,ChaUI 页面接管绘制、布局、组件命中和页面生命周期。
  5. 原版容器继续负责物品、光标、拖拽、网络同步和 Bukkit 库存事件。

因此,替换页面不是把第三方菜单复制成另一份虚拟菜单。它更像给当前真实容器换了一套皮肤和交互布局。

与普通 ChaUI 页面有什么不同 ​

普通页面容器替换页面
由页面打开入口或业务 API 打开。打开匹配原版容器时自动出现。
普通物品槽通过 ChaUI 槽位服务端裁决。containerBinding 绑定的物品槽委托当前原版容器。
按钮脚本通常直接执行页面动作。绑定按钮先点击原版槽位,再执行自己的点击脚本。
页面关闭只结束 ChaUI 页面。页面与原版容器一起关闭,或在 reload 时原地重新匹配。

推荐学习顺序 ​

  1. 先完成替换第一个箱子界面。
  2. 用箱子匹配规则为不同插件菜单分配页面。
  3. 用槽位、按钮与物品信息映射插件按钮和 Lore。
  4. 需要重做生存背包时阅读替换玩家背包。
  5. 上线前检查安全回退与排错。

安全边界 ​

客户端只负责显示与提交原版容器操作,不能凭页面内容决定服务端物品。服务端会确认玩家当前容器、页面规则和会话身份。页面不匹配、配置冲突、版本不一致或确认失败时,ChaUI 会保留或恢复原版界面,避免玩家被困在无法操作的页面中。