ArcartXUIRegistry:UI注册器
UI注册管理API
ArcartXUIRegistry
- UI注册器负责管理ArcartX的自定义UI界面的注册、打开、关闭和数据通信。
- 通过
ArcartXAPI.getUIRegistry()获取。 - 提供安全版本和Unsafe版本两套方法。
安全版本 vs Unsafe版本:
- 安全版本(
open、close、sendPacket、run)— 会检查UI是否已注册,通过注册的UI对象操作 - Unsafe版本(
openUnsafe、closeUnsafe等)— 直接发送网络包,不检查注册状态,适用于动态UI或特殊场景
注册与注销
register(id, src)
- 注册一个UI界面,支持三种数据源
- 参数:
id: String — UI唯一标识src: YamlConfiguration / String / File — UI配置数据源
- 返回值:
ArcartXUI— UI对象 - 调用示例
unregister(id)
- 注销一个UI界面
- 参数:
id: String — UI唯一标识 - 返回值:无
- 调用示例
reload(id, src)
- 热重载一个UI界面,会保留已注册的回调,并自动同步到所有在线玩家
- 参数:
id: String — UI唯一标识src: YamlConfiguration / String / File — 新的UI配置数据源
- 返回值:无
- 调用示例
安全操作
open(player, id)
- 为玩家打开一个已注册的UI
- 参数:
player: Player — 目标玩家id: String — UI唯一标识
- 返回值:无
- 调用示例
open(player, id, callBack)
- 为玩家打开UI,并注册一个打开回调
- 参数:
player: Player — 目标玩家id: String — UI唯一标识callBack: CallBack — 打开回调
- 返回值:无
- 调用示例
close(player, id)
- 为玩家关闭一个已注册的UI
- 参数:
player: Player — 目标玩家id: String — UI唯一标识
- 返回值:无
- 调用示例
sendPacket(player, id, handlerName, packet)
- 向玩家客户端的UI发送数据包
- 参数:
player: Player — 目标玩家id: String — UI唯一标识handlerName: String — 处理器名称packet: Object — 数据包内容
- 返回值:无
- 调用示例
run(player, id, code)
- 在玩家客户端的UI中执行Shimmer脚本
- 参数:
player: Player — 目标玩家id: String — UI唯一标识code: String — Shimmer脚本代码
- 返回值:无
- 调用示例
Unsafe操作
Unsafe方法直接发送网络包,不检查UI是否已注册。适用于动态创建的UI或需要绕过注册检查的特殊场景。
openUnsafe(player, id)
- 直接发送打开UI的网络包
- 参数:
player: Player — 目标玩家id: String — UI标识
- 返回值:无
openUnsafe(player, id, callBack)
- 直接发送打开UI的网络包,并注册回调
- 参数:
player: Player — 目标玩家id: String — UI标识callBack: CallBack — 打开回调
- 返回值:无
closeUnsafe(player, id)
- 直接发送关闭UI的网络包
- 参数:
player: Player — 目标玩家id: String — UI标识
- 返回值:无
sendPacketUnsafe(player, id, handlerName, packet)
- 直接发送UI数据包
- 参数:
player: Player — 目标玩家id: String — UI标识handlerName: String — 处理器名称packet: Object — 数据包内容
- 返回值:无
runUnsafe(player, id, code)
- 直接在UI中执行脚本
- 参数:
player: Player — 目标玩家id: String — UI标识code: String — Shimmer脚本代码
- 返回值:无
