配置项 ModConfig

基本信息

属性 值
实现类 common/data/config/ModConfig.java
配置文件 ./config/gadomancy.cfg(Gadomancy.java:57)
加载时机 FML onConstruct 阶段(Gadomancy.java:54-59)
声明字段数 12
已赋值字段数 12(无死配置项)

字段完整性核验

对 ModConfig 逐字段比对「声明」与「从配置赋值」两处:

字段 声明行 赋值行 外部读取处数
entityNoClipItemDatawatcherMasterId 25 68 7
entityNoClipItemDatawatcherFixedId 28 75 6
entityAuraCoreDatawatcherAspectsId 31 83 4
golemDatawatcherId 34 91 4
dimOuterId 37 95 21
blacklistAuraEffects 40 147 1
doLightCalculations 42 102 1
maxMazeCount 43 107 1
renderParticleDistance 44 130 2
enableAdditionalNodeTypes 46 137 6
ancientStoneRecipes 49 116 2
eldritchdecoblocks 52 123 1

12 个声明字段全部在 loadFromConfig() 中被赋值,且每个都至少有 1 处外部读取——不存在「声明却从未赋值」或「已赋值却零读者」的死配置项。

配置项一览

entities 分类

键名 字段 类型 默认 范围 说明
itemNoClipDatawatcherMasterId entityNoClipItemDatawatcherMasterId int 19 0–31 穿透物品实体的「主坐标」Datawatcher ID
itemNoClipDatawatcherFixId entityNoClipItemDatawatcherFixedId int 20 0–31 穿透物品实体的「固定坐标」Datawatcher ID
auraCoreDatawatcherAuraId entityAuraCoreDatawatcherAspectsId int 21 0–31 灵气核心实体的当前要素 Datawatcher ID

前两项的说明文字以「Do not edit unless you know what are you doing!」开头(ModConfig.java:74、81、89)。

golem 分类

键名 字段 类型 默认 范围
datawatcherId golemDatawatcherId int 29 0–31

说明同为「Do not edit unless you know what are you doing!」(ModConfig.java:92)。

dimension 分类

键名 字段 类型 默认 范围 说明
dimOuterId dimOuterId int -73 Integer.MIN_VALUE–MAX_VALUE 经节点操纵器进入异界迷宫的维度 ID
calculateEldritchLight doLightCalculations boolean true — TRUE = 计算异界迷宫光照;FALSE = 不计算但有光照 bug。计算耗时约 2 秒,可在进入迷宫时观察到
maxMazeCount maxMazeCount int -1 -1–MAX_VALUE 同时存在的异界迷宫数量上限(-1 = 无限)。1 个迷宫 = 1 名玩家;玩家完成后迷宫自行关闭并传送其离开

skyblock 分类

键名 字段 类型 默认 说明
ancientStoneRecipes ancientStoneRecipes boolean false TRUE = 加入远古石与远古石基座的配方(对空岛 / 天空块包有用,可用来造节点操纵器换取更多始源珍珠)。客户端与服务端都必须改

decorative 分类

键名 字段 类型 默认 说明
eldritchdecoblocks eldritchdecoblocks boolean true false = 移除这些异界装饰方块的配方。客户端与服务端都必须改

general 分类

键名 字段 类型 默认 范围 说明
particleRenderDistance renderParticleDistance int 100 5–1000 玩家需距粒子源头多近才能看到它产生的粒子
enableAdditionalNodeTypes enableAdditionalNodeTypes boolean true — 启用 Gadomancy 的自定义节点类型。可能解决某些兼容性问题(例如 WitchingGadgets)。客户端与服务端都必须改;仅在遇到特定 mod 功能「只有与 Gadomancy 同装时才失效」时才更改
auraPylonBlacklist blacklistAuraEffects String→String[] “”(空串) — 逗号分隔的要素标签列表(如 aura,aer),列出的要素不会在灵气塔中生效/可获得。留空表示不屏蔽任何要素

enableAdditionalNodeTypes 的说明是本 mod 配置中唯一提到其他 mod 名字的地方(提到 WitchingGadgets),但那是作为兼容性问题的举例,不是对 Witchery 或 Witchery 系 mod 的依赖。Gadomancy 全仓对 witchery 的引用数为 0。

potions / enchantments 分类(自动生成)

这两类不是硬编码的固定键,而是反射自动生成的:

for (Field field : RegisteredPotions.class.getFields()) {
    if (Potion.class.isAssignableFrom(field.getType())) {
        ModConfig.loadPotionId(field.getType().getSimpleName());
    }
}

(RegisteredPotions.java:39-45,附魔同理见 RegisteredEnchantments.java:26-32)

分类 自动生成的键数 键名格式 特殊值
potions 5 药水类简单名,如 PotionMiningLuck -1 = 自动寻找最小空闲 ID
enchantments 1 附魔类简单名 EnchantmentRevealer -1 = 自动寻找最小空闲 ID

配置分类注释(ModConfig.java:149-154)明确:出现药水 ID 冲突时用这两类,填 -1 则自动找最小空闲 ID。

赋值与回退规则

loadId 对配置值做了钳位(ModConfig.java:179-184):

Property prop = ModConfig.config.get(category, name, -1);
prop.setLanguageKey(name);
int result = prop.getInt(-1);
return result < -1 ? -1 : result;

即小于 -1 的值被归一化为 -1(自动分配)。

药水 ID 若超出 Potion.potionTypes 数组长度会扩容数组并打印警告;若与其他药水冲突则直接抛 RuntimeException(RegisteredPotions.java:74-92),提示用户自行改配置。ID 大于 127 也会告警(RegisteredPotions.java:64-72)。

数值

数值名 值
硬编码配置字段数 12
声明未被赋值字段数 0
已赋值但零读者字段数 0
自动生成的药水 ID 条目 5
自动生成的附魔 ID 条目 1
配置分类数 7(entities / golem / dimension / skyblock / decorative / general / potions+enchantments)
维度 ID 默认值 -73

交互

触发 行为
模组加载 在 FML construct 阶段读取 gadomancy.cfg
分类缺失 自动创建并写入默认值
ID 冲突 药水抛 RuntimeException;附魔抛 RuntimeException(RegisteredEnchantments.java:48-52)

相关条目