暗黑药剂

[!INFO] 注册真源:potions/DarkPotions.java:18 alchemize()

potions/ 包下只有两个类:DarkPotions.java 与 PotionBloodSeal.java。

实际生效的药剂:1 个

字段 类 条件
bloodSeal PotionBloodSeal if (Compat.bm) —— 即 Config.bloodMagic && Loader.isModLoaded("AWWayofTime")

没有装 Blood Magic(AWWayofTime)时,本模组不注册任何药剂。

死字段:dragonwrack

DarkPotions.java:16 声明了 public static Potion dragonwrack;,但:

  • 全仓 grep dragonwrack 只命中 5 处,无任何赋值语句
  • potions/ 下不存在 PotionDragonwrack.java 类
  • Config.java:32 有 dragonwrackPotionID = 71,:181 有对应配置读取
  • 6 个语言文件(en_US / fr_FR / ja_JP / ko_KR / ru_RU / zh_CN)中,只有 3 个(en_US、ko_KR、ru_RU)残留 potion.dragonwrack 与 death.attack.dragonwrack 孤儿字符串

[!WARNING] 源缺陷:dragonwrack 是完全的死字段 —— 字段、配置项、6 条孤儿字符串三者俱在,唯独没有实现类与实例化代码。Dragonwrack 药剂应是从早期版本移除后清理遗漏。玩家在配置中调 Dragonwrack 的 potion ID 不会有任何效果。

证据:src/main/java/fox/spiteful/forbidden/potions/DarkPotions.java:16(声明)、Config.java:32(默认值 71)、Config.java:181(配置读取)、assets/forbidden/lang/{en_US,ko_KR,ru_RU}.lang(孤儿字符串)。另 3 个语言文件(fr_FR / ja_JP / zh_CN)没有这些键,说明其从未被同步清理过。

药剂表扩容

alchemize() 开头有一段反射扩容:若 Potion.potionTypes.length < 256,通过移除 Potion 类的 potionTypes 字段 FINAL 修饰符并替换为长度 256 的新数组,扩展原版药剂表上限,为血魔法等需要大量药剂 id 的兼容 mod 让路。

这是修改其他 mod/原版私有字段的操作,是 1.7.10 上扩充药剂 id 的常见手法。