Tooltip 控制符

基本信息

属性 值
常量类 mcp.mobius.waila.api.SpecialChars(SpecialChars.java:5)
带标签列表 mcp.mobius.waila.api.impl.TipList(TipList.java:13)
带标签列表接口 mcp.mobius.waila.api.ITaggedList(ITaggedList.java)

provider 回调返回的每一行都是一个 String,其中可嵌入控制符。Waila 用 SpecialChars 里的一组 Pattern 在渲染时切分并解释它们。

功能

字符前缀

常量 码点 用途 行
MCStyle §(U+00A7) 原版颜色/格式码前缀 7
WailaStyle ¤(U+00A4) Waila 扩展前缀 33
WailaIcon ¥(U+00A5) 扩展:图标 34
WailaRenderer ¦(U+00A6) 扩展:自定义渲染 35
WailaRendererComma ‚(U+0082) 渲染参数分隔符 36

三段式扩展标记

均为 WailaStyle 双写或组合(SpecialChars.java:37-43):

常量 实际串 含义 行
TAB ¤¤a 制表/缩进 37
ALIGNRIGHT ¤¤b 右对齐 38
ALIGNCENTER ¤¤c 居中 39
RENDER ¤¦a 调用自定义渲染器 43
HEART ¤¥a 半颗心 40
HHEART ¤¥b 满心 41
EHEART ¤¥c 空心 42

解析用 Pattern

常量 匹配目标 行
patternMinecraft § + [0-9A-FK-OR](原版颜色与格式) 45
patternWaila ¤ + 任意 2 字符(捕获组名 type) 46
patternRender 完整的 ¤¦a{名称‚参数...} 48-54
patternTab ¤¤a 55
patternRight ¤¤b 56
patternCenter ¤¤c 57
patternIcon ¤¥[0-9a-z] 58
patternLineSplit 一行内所有可识别片段(¤¤… / ¤¥X / ¤¦a{…} / 纯文本) 60-77

全部 Pattern 带 (?i) 忽略大小写(SpecialChars.java:45-77)。

生成渲染调用串

SpecialChars.getRenderString(String name, String... params)(SpecialChars.java:83-90)是推荐的构造方式:拼出 RENDER + "{" + name,再对每个 param 追加 WailaRendererComma,最后补 }。手工拼接容易漏掉 ‚ 分隔符,javadoc 亦建议使用该方法(SpecialChars.java:79-82)。

颜色常量

BLACK 到 WHITE 共 16 个颜色(SpecialChars.java:9-24)与 OBF / BOLD / STRIKE / UNDER / ITALIC / RESET 6 个格式码(SpecialChars.java:26-31),均为 § 加一位十六进制字符。

TipList

TipList<E, T> extends ArrayList<E> implements ITaggedList<E, T>(TipList.java:13)是一个带标签的字符串列表:每行可挂若干 tag,供后续按 tag 批量查询或删除。核心方法(ITaggedList.java):add(E,T)、add(E,Collection)、getTags、addTag、removeTag、getEntries(T)、removeEntries(T)、getTagsAsString(E)。

Waila 自身用它来保存 tip 行与其来源标记(WailaTickHandler.java:27 持有一个 MetaDataProvider,tip 列表在 WailaTickHandler.java:52-55 分 head/body/tail 三段构造)。

数值

项 值 来源
颜色常量数 16 SpecialChars.java:9-24
格式码常量数 6 SpecialChars.java:26-31
扩展标记常量数 7 SpecialChars.java:37-43
解析 Pattern 数 8 SpecialChars.java:45-77
ITaggedList 方法数 11 ITaggedList.java

交互

provider 输出的行在 WailaTickHandler 中被按 head / body / tail 三段组织(WailaTickHandler.java:52-55),最终交给 OverlayRenderer.renderOverlay 绘制(WailaTickHandler.java:31-33)。¤¦a{...} 的渲染器分发见 Tooltip 渲染器 API。

相关条目