WAILAPlugins
[!INFO] Git Commit:
7cb8ea8| Updated: 2025-11-18
WAILAPlugins(modid wailaplugins)是一个纯插件桥接 mod——它不注册任何方块、物品、实体或维度,只做一件事:把其他 mod 的内部数据(流体罐、作物状态、蜂箱基因、门电路参数、多方块成型状态……)翻译成 WAILA 的提示栏文本。
它的定位相当于"WAILA 的扩展包":用 @Plugin 注解 + ASM 扫描发现插件类,在 preInit / loadComplete 两个阶段完成注册,本 mod 自身唯一的"内容"就是 7 个内置插件插件与两层配置开关系统。
源码包:tterrag.wailaplugins(17 个 Java 文件)。作者 tterrag,Blood Magic 部分改编自 Pokefenn 的作品,RedLogic 部分改编自 WAILA 自带的 RedPower 插件(ProfMobius)。
基本信息
| 属性 | 值 |
|---|---|
| modid | wailaplugins |
| 显示名 | WAILA Plugins |
| Minecraft | 1.7.10(GTNH 约定构建) |
| 依赖 | after:endercore;after:Waila;(EnderIO Core + Waila) |
| 内容维度 | 仅 setting——无方块 / 物品 / 实体 / 附魔 / 维度 / 热键 / 群系 / 结构 / 成就 |
| 配置 | config/wailaplugins.cfg + WAILA 自身配置的两层开关,见 配置系统 |
7 个内置插件速查
| 插件 | 目标 mod | 挂钩内容 | 功能开关 | 默认启用 |
|---|---|---|---|---|
| IC2Crops | IndustrialCraft 2 (IC2) |
作物名/等级、生长阶段与百分比、可否生长与收获、扫仪解锁的属性与营养/环境读数 | 4 | 是 |
| RedLogic | RedLogic (RedLogic) |
门四面的世界内浮空文字 + 矩形 overlay、门电路参数(延迟/间隔/计数/模式/翻转)、红合金导线强度 | 3 | 是 |
| IFluidHandler | 无特定目标(Forge 接口) | 任何实现 IFluidHandler 的方块实体的储液罐内容与容量 |
0 | 是 |
| Blood Magic | Blood Magic (AWWayofTime) |
祭坛 LP/容量/层数/进度、炼金术台进度与产物、仪式石主人与仪式、传送器槽位物品;按信标分级可见 | 4 | 是 |
| Railcraft | Railcraft (Railcraft) |
多方块成型、锅炉/引擎温度与产能、机器储液罐、电力充能度、水塔集水速率、蒸汽/电力机车 | 8 | 是 |
| Pam’s Fruit | HarvestCraft (harvestcraft) |
果实成熟度百分比(仅 Body,无 NBT) | 0 | 是 |
| Forestry | Forestry (Forestry) + 可选 MagicBees |
引擎能量与温度、树苗基因(限本人且已分析)、树叶授粉对象、蜂箱蜂种/繁育/产蜜旺季 | 5 | 是 |
每个插件都另有 1 个插件级总开关,合计 7 个总开关 + 24 个功能开关。全部默认 true。
目标 mod 未安装时,对应插件在注册阶段被直接跳过(日志 Skipping over plugin ... as its dependencies ... were not found.),不产生任何行为。唯一的例外是 IFluidHandler——它不声明任何 deps,因此始终可用。
设定列表
各集成的具体行为
- IC2 作物集成 -
PluginIC2Crops;14 个 NBT 键;显示量由作物方块的scanLevel门控 - RedLogic 集成 -
PluginRedLogic;唯一实现IWailaBlockDecorator的插件,在世界内画浮空文字与半透明矩形 - Forge 流体桥接(IFluidHandler) -
PluginIFluidHandler;无deps的通用接口桥,覆盖面最广 - 血魔法集成 -
PluginBloodMagic;order = 1保证排在流体插件之后,并主动抹掉后者的输出行 - Railcraft 集成 -
PluginRailcraft;含实体(机车)provider 与水塔集水速率计算 - HarvestCraft 集成(Pam’s Fruit) -
PluginHarvestcraft;最小插件,只加一行成熟度 - Forestry 集成 -
PluginForestry;信息量最大,Shift 展开基因与产蜜量
框架与配置
- 插件 API 与生命周期 -
@Plugin注解、IPlugin、PluginBase七个注册辅助方法、PluginRegistrar的"发现→实例化→排序→注册→收尾"流程 - 配置系统 -
WPConfigHandler的 3 个段、3 个静态选项、[plugins]动态段、配置 GUI 入口 - WAILA 模块开关 - 全部 7 个总开关 + 24 个功能开关的总表与两处不生效开关
跨插件的两条耦合
源码中有两处插件间的直接耦合,是理解本 mod 结构的关键:
- 血魔法 → 流体:血魔法的
getBody首行执行removeEntries("IFluidHandler"),把通用流体插件写在提示栏里的行摘掉,避免 Blood Magic 祭坛同时出现通用流体行与专用行。order = 1(高于默认0)正是为保证这个顺序而设。 - Railcraft → 流体:Railcraft 直接复用
PluginIFluidHandler的public static读写方法(writeFluidInfoToNBT/readFluidInfoFromNBT/addTankTooltip)来显示机器储液罐,两者共用同一套 NBT 格式;且对不实现IFluidHandler的储罐机器才由 Railcraft 插件自己写tankFluid。
源码现状提示
本 fork 的代码与语言文件并不同步,以下均为源码既有现象,如实记录:
- 语言文件含大量无对应类的残留段(
Steamcraft、Gregtech5U、magicalcrops、Mekanism、ResourcefulCrops、ThermalExpansion等),这些集成在本 fork 中不存在,其开关不会出现在配置里。 - Railcraft 的
tanks与energy两个开关注册了但源码中无读取点,关掉它们不产生任何效果(引擎能量行实际由engines管,储罐行无门控)。 - 血魔法的 4 个功能开关标签语言键失配:代码请求
wp.config.Blood Magic.*,语言文件定义的是wp.config.AWWayofTime.*(按依赖 modid 命名)。功能正常,仅复选框名回退为原始键。 - RedLogic 比较器模式取语言键
comparat,而语言文件定义的是compare,该模式标签会回退显示原始键。 WailaPlugins.proxy无任何读取点;Forestry 的 Shift 判定走 Forestry 自己的Proxies。PluginForestry构造函数反射的_maxHeat字段赋值后从未使用。
各条的详细说明见对应条目页。