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,因此始终可用。

设定列表

各集成的具体行为

框架与配置

  • 插件 API 与生命周期 - @Plugin 注解、IPlugin、PluginBase 七个注册辅助方法、PluginRegistrar 的"发现→实例化→排序→注册→收尾"流程
  • 配置系统 - WPConfigHandler 的 3 个段、3 个静态选项、[plugins] 动态段、配置 GUI 入口
  • WAILA 模块开关 - 全部 7 个总开关 + 24 个功能开关的总表与两处不生效开关

跨插件的两条耦合

源码中有两处插件间的直接耦合,是理解本 mod 结构的关键:

  1. 血魔法 → 流体:血魔法的 getBody 首行执行 removeEntries("IFluidHandler"),把通用流体插件写在提示栏里的行摘掉,避免 Blood Magic 祭坛同时出现通用流体行与专用行。order = 1(高于默认 0)正是为保证这个顺序而设。
  2. 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 字段赋值后从未使用。

各条的详细说明见对应条目页。