配置项

基本信息

属性 值
配置文件 config/WitcheryExtras/asm.cfg(AsmConfig.java:40)
配置类 config/AsmConfig.java
加载方式 static 块中 syncConfig(true)(AsmConfig.java:39-42)
选项总数 18(2 个 general + 15 个 predictions + 1 个 blocks)
分类 general / predictions / blocks(+ 一个空的 debug)

asm.cfg 这个名字是历史遗留(ASM = 早期 “Another Skin Mod”), 现在与 mixin 补丁无关,不要按名字推断其作用。

general(2 项)

键 类型 默认 注释原文 行
enablePatchNEI boolean true Patch NEI for good recipe support. AsmConfig.java:54-57
allowPoppetShelfChunkLoading boolean true Enables Chunk Loading by Poppet Shelves. AsmConfig.java:60-63
键 静态字段 作用位置 需重启
enablePatchNEI AsmConfig.enablePatchNEI 门控 Mixin 组 WITCHERY_NEI_CONFIG(mixins/Mixins.java:44-47) 是(setRequiresMcRestart(true),AsmConfig.java:56)
allowPoppetShelfChunkLoading AsmConfig.allowPoppetShelfChunkLoading 门控人偶架区块加载(TileEntityPoppetShelfMixin.java:26、40)+ tooltip 颜色(TooltipHandler.java:22-27) 是(AsmConfig.java:62)

enablePatchNEI 门控的是 Mixin 是否应用,因此改完必须重启游戏, 光重载配置无效。

predictions(15 项)

调用的类:PredictionHandler.adjustPredictions()(见 预言权重重写)。 所有值都是 int 权重,无范围限制(prop.getInt(默认) 不带上下界)。

键 默认 英文注释 中文注释 行
chancePredictionSpawnBabaYagaGood 2 Adjusts weight for ‘Good’ Baba Yaga spawns 好 Baba Yaga 权重 AsmConfig.java:70-74
chancePredictionSpawnBabaYagaBad 2 Adjusts weight for ‘Bad’ Baba Yaga spawns 坏 Baba Yaga 权重 AsmConfig.java:76-80
chancePredictionExtraCoal 13 Adjusts weight for Extra Coal Drops 额外煤炭掉落 AsmConfig.java:83-87
chancePredictionSpawnEnt 3 Adjusts weight for Ent Spawn 树精生成 AsmConfig.java:90-94
chancePredictionStumbleAndFall 13 Adjusts weight for ‘Stumble & Fall’ 绊倒坠落 AsmConfig.java:97-101
chancePredictionGetWet 13 Adjusts weight for ‘Get Wet’ 淋湿 AsmConfig.java:104-108
chancePredictionExtraIron 8 Adjusts weight for Extra Iron Drops 额外铁掉落 AsmConfig.java:111-115
chancePredictionSpawnZombie 13 Adjusts weight for Zombie Spawn 僵尸生成 AsmConfig.java:118-122
chancePredictionSpawnProtectiveAnimal 13 Adjusts weight for Friendly Animal Spawn 友好动物生成 AsmConfig.java:125-129
chancePredictionSpawnSkeleton 13 Adjusts weight for Skeleton Spawn 骷髅生成 AsmConfig.java:132-136
chancePredictionSpawnBuriedTreasure 2 Adjusts weight for ‘Buried Treasure’ spawn 埋藏宝藏 AsmConfig.java:139-143
chancePredictionTeleportNether 3 Adjusts weight for Nether Teleport 下界传送 AsmConfig.java:146-150
chancePredictionSpawnFriendlyWolf 3 ⚠️ Adjusts weight for (空注释) 友好狼生成 AsmConfig.java:153-157
chancePredictionFindShinies 3 Adjusts weight for Bonus Diamond/Emerald drop from stone 石头额外钻石/绿宝石 AsmConfig.java:160-164
chancePredictionVillagerLove 2 Adjusts weight for Villager + Player lovemaking event 村民与玩家亲热事件 AsmConfig.java:167-171

⚠️ 源码缺陷:chancePredictionSpawnFriendlyWolf 的注释字符串没写完—— prop.comment = "Adjusts weight for ";(AsmConfig.java:154),末尾直接是分号。 生成出来的 cfg 里这一项的说明就是半句话。

📌 默认值 ≠ 生效保证:这 15 个默认值会被 PredictionHandler 的 17 元素数组按下标读取,其中 aNewValues[-1] 越界、 下标 17 无对应配置。详见 预言权重重写 的 「数组越界 + 下标错位」一节——不要把上表默认值当成「实际生效的权重」。

blocks(1 项)

键 类型 默认 注释 行 作用
disableSilverVat boolean false Disable Silver Vat AsmConfig.java:173-176 取消银缸方块注册(BlockBaseContainerMixin.java:26)

分类名是 blocks 但只有 1 项,且它不禁用本 mod 的方块(本 mod 没有方块), 禁用的是 Witchery 的银缸。该开关不标记 setRequiresMcRestart(true), 但它改变的是方块注册阶段,实际上仍需重启才能改变结果。

⚠️ 空的 debug 分类

ArrayList<String> propOrderDebug = new ArrayList<>();          // AsmConfig.java:46
...
config.setCategoryPropertyOrder("debug", propOrderDebug);     // AsmConfig.java:179

propOrderDebug 被创建并传给 setCategoryPropertyOrder("debug", ...), 但全代码库没有任何一处往 debug 分类加过属性 (grep '"debug"' 只命中 AsmConfig.java:179 一行)。 即 debug 是一个永远为空的分类。

异常处理

AsmConfig.java:184-186:

} catch (Exception var3) {
    FMLLog.log(Level.ERROR, var3, "Witchery++ ASM had a problem loading it's config", new Object[0]);
}

整个 syncConfig 包在一个 catch (Exception) 里。 任一配置项读取失败只打 ERROR 日志,所有 public static 字段保留 Java 默认值 (boolean = false,int = 0)——注意 0 权重与配置默认值 2/3/13 差别很大, 配置损坏时预言权重会全部变成 0。

📌 异常信息里写的是 "Witchery++ ASM had a problem loading it's config"—— 仍用旧名 ASM,且 it's 应为 its。

关联