HUD
常驻 HUD、布局绑定与 ActionBar 接管字段参考
先准备字体、图片和Layout。HUD 文件位于 core/display/huds,顶层节点是 HUD ID;它只引用已经存在的 Layout。
文件关系
完整结构
下例复用自带 hud_info 和入门 Layout的 tutorial_welcome。
main:
enabled: true
order: 0
refresh: 10
layouts:
hud_info: {}
tutorial_welcome:
refresh: 5
condition: |
perm xerr.hud
variables:
title: "玩家信息"HUD 字段
| 字段 | 类型 / 省略值 | 范围 | 说明 | 生效 |
|---|---|---|---|---|
| 顶层节点 | 字符串 | 非空、全局唯一 | HUD ID | 打包 |
enabled | 布尔 / true | true/false | 是否启用这个 HUD | 重载 |
order | 整数 / 0 | 任意整数 | 多个 HUD 的组合顺序,数字小的先处理 | 重载 |
refresh | 整数 / 无 | 1~1200 tick | 当前 HUD 的默认内容刷新间隔 | 重载 |
layouts | 映射 / 必填且非空 | Layout ID 到绑定配置 | 按 YAML 顺序组合 Layout | 重载¹ |
layouts 绑定字段
layouts:
hud_info: {}
tutorial_welcome:
refresh: 10
condition: |
perm quest.hud
variables:
title: "主线任务"| 字段 | 类型 / 省略值 | 说明 | 生效 |
|---|---|---|---|
| Layout ID | 字符串 / 必填 | 要显示的全局 Layout ID | 重载¹ |
refresh | 整数 1~1200 / 继承 HUD | 当前绑定的刷新间隔 | 重载 |
condition | Kether / 无 | 返回 true 时显示整个 Layout | 重载 |
variables | 字符串映射 / 空 | 传给 Layout 的变量 | 重载 |
{} 表示只引用 Layout,不覆盖任何绑定参数。
¹ 只切换已经打进客户端资源包的 Layout 时可以重载;新建 Layout 或修改其坐标、图片、字体后仍需 /xerr pack。
ActionBar 接管
常驻 HUD、信息栏和弹窗统一通过 BossBar 显示,不再选择显示通道。最终内容未变化时不会重复发送。
需要将原版或其它插件的 ActionBar 文字显示在 HUD 中时,在 config.yml 开启接管:
feature:
actionbar:
enable: true接管默认关闭。开启后,在布局中通过 {{ get @actionbar }} 读取当前消息。Xerr 保留文字颜色和粗斜体,字体、背景与位置由布局决定;新消息覆盖上一条,消息到期后清空,不会把消息 JSON 当作文字显示。
自带 HUD 已引用 actionbar 布局;已有项目请确认这个 HUD 已启用:
action:
enabled: true
layouts:
actionbar:
refresh: 5默认布局位于快捷栏上方,并复用信息栏的公告背景:
defaults:
font: pixel
actionbar:
message:
anchor:
x: 50
y: 100
align: center
y: 82
value: "&f{{ get @actionbar }}"
background:
id: stack_announcement
y: 85布局现在使用统一的 BossBar 定位,不再依赖原版 ActionBar 的绘制位置。消息变化、清空或到期时会刷新内容,无需将 refresh 改成 1。
关闭接管后,消息继续由原版 ActionBar 显示。普通聊天不会被拦截;没有启用 HUD 或消息无法解析时,原消息也会放行。
修改接管开关或 HUD 启用状态后执行 /xerr reload;新增布局或修改字体、坐标、背景后,执行 /xerr pack 并让客户端加载新资源包。