XerrAPI
显示、物品提示与物品数据的稳定调用入口
所有公共功能从 XerrAPI 获取:
XerrAPI.layouts
XerrAPI.popups
XerrAPI.screens
XerrAPI.compasses
XerrAPI.tooltips
XerrAPI.itemDataJava 使用:
XerrAPI.get().layouts();
XerrAPI.get().popups();
XerrAPI.get().screens();
XerrAPI.get().compasses();
XerrAPI.get().tooltips();
XerrAPI.get().itemData();调用示例中的 ID 必须先在配置中存在。先准备字体、图片、Layout 和资源包;下面不会为你创建对应配置。完整文件示例见入门路线。
Layout
检查和渲染:
val exists = XerrAPI.layouts.exists("hud_info")
val component = XerrAPI.layouts.render(
player,
"hud_info",
mapOf("title" to "玩家信息")
)包含 Kether、Placeholder 或其它异步内容时,优先使用:
XerrAPI.layouts.renderAsync(
player,
"hud_info",
mapOf("title" to "玩家信息")
).thenAccept { component ->
if (component != null) {
// 在自己的显示通道中使用 component
}
}null 表示找不到 Layout 或没有元素可供构建;不要把它当作所有条件隐藏情况的统一返回值。API 返回组件,不会替客户端加载资源包。
Popup
XerrAPI.popups.show(
player,
"notice",
mapOf(
"title" to "任务完成",
"message" to "获得钻石 ×3"
)
).thenAccept { handle ->
handle.updateVariables(mapOf("message" to "获得钻石 ×5"))
handle.renew()
}关闭:
handle.close()
handle.close(force = true)等待生命周期:
handle.shown.thenAccept { shown -> }
handle.finished.thenAccept { reason -> }排队中的 Popup 也会立即返回 Handle。popupId 是类型 ID,handle.id 是实例 UUID。
Screen
持续效果:
val movie = XerrAPI.screens.show(player, "movie")
movie.close()播放 Scene:
val scene = XerrAPI.screens.play(
player,
"layout_background_demo",
mapOf(
"title" to "区域解锁",
"message" to "你已抵达新的区域"
)
)等待 Scene 结束;Marker 必须定义在实际播放的 Scene 内:
scene.finished.thenAccept { reason -> }
val transition = XerrAPI.screens.play(player, "yellow_transition")
transition.waitMarker("covered").thenAccept { reached -> }Compass 固定目标
XerrAPI.compasses.setTarget(
player,
"navigation",
"quest:main",
location,
"quest",
"主线任务",
100
)跟随实体:
XerrAPI.compasses.followEntity(
player,
"navigation",
"party:leader",
leader,
"teammate",
leader.name,
50
)移除和隐藏:
XerrAPI.compasses.removeTarget(player.uniqueId, "navigation", "quest:main")
XerrAPI.compasses.setVisible(player.uniqueId, "navigation", false)所有目标修改都返回 Future。目标内部保存 UUID 和不可变坐标,不长期持有 Bukkit Player、Entity 或 World 对象。
兼容边界
稳定合同只包含 XerrAPI 返回的公开接口、Handle、目标模型和公开事件。带有内部用途的 Container、Loader、Renderer、Service 不属于外部插件兼容范围。
物品提示与数据
XerrAPI.tooltips 负责绑定控制与客户端显示副本,不改写源名称和 Lore,XerrAPI.itemData 负责只读快照与物品库读取器注册。目标位置校验、NBT/PDC 路径与刷新方式见物品提示与数据接入。