跳转到正文
iPlugin

制作自动排列的信息栏

字体与图片 → 局部 Layout → Row 与 Item → 全局 Stack

本页制作“时间 + 任务”一行。任务隐藏时,时间自动居中。使用字体教程中的 tutorial_font;已有字体时可替换示例 ID,本例不需要图片。可视化操作见信息栏编辑教程。

默认主题的时间、坐标和公告外观

上图是默认主题,下面的练习是纯文字,先验证排列,再加背景和图标。

文件结构

tutorial_stack.yml
settings.yml
tutorial.yml

准备两块局部 Layout

plugins/Xerr/core/layout/tutorial_stack.yml
defaults:
  font: tutorial_font

tutorial_time:
  text:
    y: 20
    value: '&f{{ date as "HH:mm" }}'

tutorial_quest:
  text:
    y: 20
    value: "&e{{ get quest_name }}"

这两个 Layout 不写屏幕锚点,也不用加入 HUD。Stack 会负责它们的位置和显示。

创建一行 Row

plugins/Xerr/core/display/stack/rows/tutorial.yml
tutorial_row:
  order: 50
  empty: collapse
  horizontal:
    align: center
    gap: 8
  items:
    time:
      layout: tutorial_time
      refresh: 20
    quest:
      layout: tutorial_quest
      condition: |
        perm tutorial.quest
      refresh: 20
      variables:
        quest_name: "寻找遗迹"

两个 Item 分别引用一个 Layout,变量属于该 Item。条件写在 quest Item 上,才能隐藏整项并触发重排。

确认唯一全局设置

Xerr 只读取一份 core/display/stack/settings.yml。确认其中 enabled: true,保持原有位置即可。

Row 可以拆到 rows 下任意子目录,但不要为每个 Row 再创建 settings.yml。

打包并观察

执行 /xerr pack 并加载新包。有 tutorial.quest 权限时显示两项;没有权限时只显示时间,并自动靠向中间。

若需要固定验证隐藏状态,可把 Item 的条件临时改成 false,执行 /xerr reload。不要仅删除文字内容来代替隐藏 Item。

空行是否占位

empty: collapse 在整行为空时让后面的 Row 补位。reserve 保留这一行原有的槽位。

加入图片或文字背景

先登记图片或背景模板,再加入对应的局部 Layout。Stack 会测量图片、文字和背景的联合边界,不会把重叠背景当作额外重复宽度。

特殊装饰不应影响占位时,设置 affect-bounds: false。普通配置先不用手写 bounds。

全部全局、Row、Item 和 BossBar 接管字段见Stack 参考。