Enchantments
基本信息
| 属性 | 值 |
|---|---|
| 路径 | crazypants.enderzoo.enchantment.Enchantments |
| 类型 | class(单例) |
| 源码 | src/main/java/crazypants/enderzoo/enchantment/Enchantments.java |
在 postInit 阶段注册本 mod 的 2 个附魔。由 EnderZoo(主 mod 类)
调用 Enchantments.getInstance() 触发。
ID 分配
getEmptyEnchantId() 线性扫描 Enchantment.enchantmentsList 找第一个 null 槽位。
若配置 *Id >= 0 则直接使用该 ID。两者都失败时打 Log.error 并放弃注册。
缺陷
扫描 Enchantment.enchantmentsList 分配 ID 属于加载顺序敏感做法:
若本 mod 先于其他 mod 加载,占到的 ID 与其它 mod 冲突会导致崩溃。
正确做法是交由 Forge 分配。属历史遗留缺陷。