IWailaRegistrar

基本信息

属性 值
接口全名 mcp.mobius.waila.api.IWailaRegistrar
源码 src/main/java/mcp/mobius/waila/api/IWailaRegistrar.java:23
唯一实现 mcp.mobius.waila.api.impl.ModuleRegistrar(ModuleRegistrar.java:28)
获取方式 反射回调的入参,不由 addon 自行构造(ProxyServer.java:117-134)
方法数 24

IWailaRegistrar 是 Waila 唯一的注册入口接口。所有第三方 addon 的 provider / decorator / 配置项都必须通过它登记,不能自己 new 一个 ModuleRegistrar。

功能

Waila 本身不注册任何方块或物品,它把 HUD 拆成 3 个区(zone):

区 语义 说明来源
Head 物品名 IWailaBlock.java:17-20
Body 主要信息 IWailaBlock.java:17-20
Tail mod 名显示 IWailaBlock.java:17-20

注册匹配使用 instanceof 而非精确类匹配,因此传接口即可覆盖整个继承树(IWailaRegistrar.java:9-12)。方块注册同时接受 Block 和 TileEntity 类(IWailaRegistrar.java:12)。

方法一览

以下方法签名逐条摘自 IWailaRegistrar.java:26-89:

方法 行 用途
addConfig(String,String,String) 26 加配置项,key 在 Waila 内全局共享
addConfig(String,String,String,boolean) 28 同上并指定默认值
addConfigRemote(String,String,String) 30 服务端可强制覆盖的客户端配置项
addConfigRemote(String,String,String,boolean) 32 同上并指定默认值
addConfig(String,String) 34 配置项显示名由 option.<key> 语言键推导
addConfig(String,String,boolean) 36 同上并指定默认值
addConfigRemote(String,String) 38 服务端可强制的配置项,显示名自动推导
addConfigRemote(String,String,boolean) 40 同上并指定默认值
registerStackProvider(IWailaDataProvider,Class) 43 覆盖默认的方块→ItemStack 查询
registerHeadProvider(IWailaDataProvider,Class) 46 追加 Head 区文本
registerBodyProvider(IWailaDataProvider,Class) 48 追加 Body 区文本
registerTailProvider(IWailaDataProvider,Class) 50 追加 Tail 区文本
registerNBTProvider(IWailaDataProvider,Class) 53 覆盖 TileEntity 默认 writeToNBT 同步
registerHeadProvider(IWailaEntityProvider,Class) 56 追加实体 Head 区文本
registerBodyProvider(IWailaEntityProvider,Class) 58 追加实体 Body 区文本
registerTailProvider(IWailaEntityProvider,Class) 60 追加实体 Tail 区文本
registerOverrideEntityProvider(IWailaEntityProvider,Class) 62 覆盖默认的实体查询
registerNBTProvider(IWailaEntityProvider,Class) 65 覆盖实体 NBT 同步
registerHeadProvider(IWailaFMPProvider,String) 68 FMP(ForgeMultipart)Head 区
registerBodyProvider(IWailaFMPProvider,String) 70 FMP Body 区
registerTailProvider(IWailaFMPProvider,String) 72 FMP Tail 区
registerDecorator(IWailaBlockDecorator,Class) 75 世界内方块装饰(高亮框等)
registerDecorator(IWailaFMPDecorator,String) 77 FMP 方块装饰
registerSyncedNBTKey(String,Class) 86 已废弃,保留 1.4.5 兼容,注释声明将在 MC 1.8 移除
registerTooltipRenderer(String,IWailaTooltipRenderer) 88 注册自定义 tooltip 渲染器

重载消歧

registerHeadProvider / registerBodyProvider / registerTailProvider / registerNBTProvider / registerDecorator 各有 2–3 个重载,靠第一个参数的类型区分:IWailaDataProvider(方块)、IWailaEntityProvider(实体)、IWailaFMPProvider(FMP,按名称字符串匹配)、IWailaBlockDecorator / IWailaFMPDecorator。

配置键命名约束

modname 是配置面板中显示的分区名;keyname 是内部查询键,在全 Waila 范围内共享,源码注释明确要求保持唯一(IWailaRegistrar.java:14-17)。面板里另有服务端强制分区 server_forcing(ConfigHandler.java:41、Constants.java:40-42)。

交互

第三方 mod 的完整接入流程(IMC → 反射 → registrar)见 IMC 注册入口。配置项的默认值与强制机制见 配置 API 与 模块配置项。

相关条目