跨模组修复
基本信息
| 属性 | 值 |
|---|---|
| 覆盖模组数 | 36 个第三方模组 + 原版 / Forge + Bukkit/Thermos |
| 相关条目 | 目标模组列表(62 个 TargetedMod 条目)、Fixes 配置、Tweaks 配置、Speedups 配置 |
功能
Hodgepodge 的一半工作量是「让 1.7.10 的大型整合包能跑起来」。本模组不注册任何方块或物品 —— 它 90% 的价值是兼容层。
三条互相独立的兼容路线:
| 路线 | 载体 | 规模 |
|---|---|---|
| 配置门控的 Mixin | Mixins.java 的 153 个 addRequiredMod 条目 |
162 次引用 |
| 配置门控的 ASM 变换器 | AsmTransformers / LateAsmTransformers |
THERMOS_SLEDGEHAMMER_FURNACE_FIX 一条 |
| 跨模组运行期协调 | Compat.java、HodgepodgeEventHandler |
见下 |
运行期协调的三处
| 位置 | 行为 |
|---|---|
core/HodgepodgeCore.java:149-155 |
若 CoreTweaks 在类路径上且 TweaksConfig.threadedWorldDataSaving 打开,调 Config.enhanceMapStorageErrors.disable() 并打 INFO 说明冲突 |
HodgepodgeEventHandler.onServerStarting |
无条件 EVENT_HANDLER.setAidTriggerDisabled(false),注释解释为「防止 ExtraUtilities 的 Spike 曾崩溃回主菜单导致变量未更新」 |
TargetedMod.FALSETWEAKS_LT_433 |
版本判定谓词顺带 Launch.blackboard.remove("hodgepodge.FixesConfig.fixBottomFaceUV") |
依赖声明
@Mod(dependencies = …)(Hodgepodge.java:36-37)只声明 3 个硬依赖:
| modId | 版本约束 | 用途 |
|---|---|---|
gtnhmixins |
required-after:gtnhmixins@[2.0.1,) |
Mixin / transformer 框架 |
unimixins |
required-after:unimixins@[0.0.20,) |
UniMixins 库 |
gtnhlib |
required-after:gtnhlib@[0.9.41,) |
配置框架、GUI、上报辅助 |
编译期依赖另有
RetroFuturaBootstrap 1.0.16(compileOnly)与supernova 0.0.2:api(compileOnly),不是运行期硬依赖。
dependencies.gradle 里另外约 40 个模组全部是 transformedModCompileOnly —— 即「只用于编译这些模组的 Mixin,不进发布元数据、不进运行类路径」。把它们误当成 Hodgepodge 的依赖是常见错误;transformedMod 作用域中只有 NotEnoughItems 2.8.143-GTNH 一个会真正进运行类路径。
数值
客户端版本闸门
@NetworkCheckHandler checkModList(Hodgepodge.java:127-134)拒绝 低于 2.5.36 的客户端加入,源码注释说明原因:确保 fastBlockPlacingDisableServerSide 设置被遵守。服务端自身不做检查(Side.SERVER 直接返回 true)。
按模组汇总
| 模组 | fixes 开关 | tweaks 开关 | speedups 开关 | 必需 Mixin 条目 |
|---|---|---|---|---|
| 模组 | fixes 开关 | tweaks 开关 | speedups 开关 | 必需 Mixin 条目 |
| ------ | ------------ | ------------- | ---------------- | ---------------- |
| 原版 / Forge(未分节部分) | 131 | 70 | 46 | — |
| (多模组通用) | 2 | 6 | — | — |
| Bukkit / Thermos | 1 | — | — | 5 |
| IndustrialCraft 2 | 14 | 7 | 1 | 22 |
| Extra Utilities | 17 | 1 | — | 19 |
| Biomes O’ Plenty | 6 | 4 | 3 | 14 |
| Thaumcraft | 7 | 2 | 1 | 12 |
| Bibliocraft | 6 | — | — | 8 |
| Witchery | 6 | — | — | 8 |
| CoFH Core | 4 | 1 | — | 8 |
| VoxelMap | 2 | 1 | 1 | 4 |
| BetterHUD | 3 | — | — | 2 |
| Journey Map | 3 | — | — | 3 |
| Minefactory Reloaded | 1 | 2 | — | 4 |
| Modular Powersuits | — | 3 | — | 3 |
| NBT 字符串池化 | — | 3 | — | — |
| Pam’s Harvest the Nether | 3 | — | — | 4 |
| WorldData 线程化保存 | — | 3 | — | — |
| Hunger Overhaul | 2 | — | — | 3 |
| Minechem | 1 | 1 | — | 1 |
| Optifine | 1 | 1 | — | 1 |
| Project Red | — | 2 | — | — |
| The Lord of the Rings | 2 | — | — | 3 |
| Thermal Dynamics | 2 | — | — | 2 |
| Automagy | — | 1 | — | 2 |
| Bibliowoods Forestry | 1 | — | — | 1 |
| Candycraft | 1 | — | — | 1 |
| Extra TiC | 1 | — | — | 1 |
| Galacticraft Core | 1 | — | — | 2 |
| Gliby’s Voice Chat | 1 | — | — | 1 |
| Immersive Engineering | 1 | — | — | 1 |
| Morpheus | 1 | — | — | 1 |
| NotEnoughItems | — | 1 | — | 1 |
| Portal Gun | 1 | — | — | 1 |
| Railcraft | — | 1 | — | 1 |
| Traveller’s Gear | 1 | — | — | 2 |
| Xaero’s Minimap | 1 | — | — | 1 |
| Xaero’s World Map | 1 | — | — | 1 |
| ZTones | 1 | — | — | 1 |
「必需 Mixin 条目」列只统计
Mixins.java中以该模组为addRequiredMod的条目数。表内合计 144,少于全量 162,差额 18 次分散在 Project Red、BugTorch、Advanced Solar Panels、Dragon API、ArchaicFix、Optifine、lwjgl3ify、Supernova、EndlessIds、Et-Futurum-Requiem、Ender IO、Baubles、Minechem 等只被其它模组的分节间接覆盖的条目上。
明细
重点兼容
- IC2(22 个 Mixin 条目,最多) —— 覆盖反应堆、模具、电网、夜视、键盘交互、锡罐、橡胶树、骨粉、与 EndlessIds 的冲突。
TargetedMod.IC2特别处理了「IC2 与 IC2 Classic 共用 modId」的问题。 - Extra Utilities(19 个) —— 桶吞 IC2 电容与 Forestry 胶囊、Lapis Caelestis 微块、透明物品渲染、Division Sigil 附魔复制 bug、末影采石场 RF 存储覆盖、Spike 刷怪。
- Bukkit / Thermos(5 个 Mixin,且被 10 个条目排除) —— Hodgepodge 明确检测到
org.bukkit.World后打四行 WARN 声明「这是不支持的配置」。ASMConfig.thermosCraftServerClass需要手改以适配具体实现的 CraftServer 类名。
三条 Java 12 兼容补丁
FixesConfig 里有 3 个显式的 Java 12 兼容项,说明 1.7.10 模组在现代 Java 上常见的失败模式:
| 开关 | 目标模组 | 说明 |
|---|---|---|
java12BopCompat |
Biomes O’ Plenty | Java 12 兼容补丁 |
java12LotrCompat |
The Lord of the Rings | Java 12 兼容补丁 |
java12MineChemCompat |
Minechem | Java 12 兼容补丁 |
另有 disableWitcheryPotionExtender(Witchery,Java 12 兼容)与 fixThaumcraftEE3Check(Thaumcraft 在现代 Java 上检查 EE3 物品)。
包利用漏洞修复
FixesConfig 里有 2 个针对第三方模组网络封包的利用漏洞修复:
| 开关 | 模组 |
|---|---|
fixBibliocraftPackets |
Bibliocraft |
fixZTonesPackets |
ZTones |