McPatcherForgeConfig(mcpatcherforge 配置)

基本信息

属性 值
外层类 jss.notfine.config.MCPatcherForgeConfig
路径 src/main/java/jss/notfine/config/MCPatcherForgeConfig.java
行数 296
modid mcpatcherforge(不是 angelica)
结构 外层类不含任何配置字段,只是 6 个嵌套静态类的容器 + 一个注册方法
字段总数 58(23 + 5 + 8 + 13 + 3 + 6)

外层类 MCPatcherForgeConfig 本身没有 @Config 注解,也没有字段。6 个 @Config 注解分别打在嵌套类上。

6 个分类

# 嵌套类 @Config 行 分类名 字段数 行范围
1 CustomColors :11 custom_colors 23 :12-107
2 CustomItemTextures :108 custom_item_textures 5 :109-132
3 ConnectedTextures :133 connected_textures 8 :134-163
4 ExtendedHD :164 extended_hd 13 :165-222
5 RandomMobs :223 random_mobs 3 :224-239
6 BetterSkies :240 better_skies 6 :241-268

各分类均无 filename 参数,因此落在 modid mcpatcherforge 的配置目录下、按 category 分节。

注册方式:手写 registerConfig

与 Angelica / NotFine / Compat / Font 四份配置不同,这 6 份不会被 ConfigurationManager 自动发现,而是由外层类的手写方法逐个登记(:269-276):

public static void registerConfig() throws ConfigException {
    ConfigurationManager.registerConfig(CustomColors.class);
    ConfigurationManager.registerConfig(CustomItemTextures.class);
    ConfigurationManager.registerConfig(ConnectedTextures.class);
    ConfigurationManager.registerConfig(ExtendedHD.class);
    ConfigurationManager.registerConfig(RandomMobs.class);
    ConfigurationManager.registerConfig(BetterSkies.class);
}

唯一调用点是 AngelicaClientTweaker.java:73:MCPatcherForgeConfig.registerConfig();,紧随 :69-72 的三次 registerConfig 之后。这发生在 coremod 阶段(AngelicaMod 的 preInit 之前),因此配置早于任何 mod 生命周期事件就绪。

字段名重复

58 个字段里只有 48 个不同的名字(grep 去重后为 48)。原因是不同嵌套类里有同名但不同类型的字段 —— 例如 enabled 在 CustomColors、CustomItemTextures、ConnectedTextures 等多个分类中各有一个。它们分属不同 Java 类,不构成冲突,但按名字统计配置项时必须按分类分别计数,不能用全局去重。

各级开关的默认状态

各分类的顶层 enabled 开关默认多为 false(例如 CustomColors.enabled 在 :14-16 是 @Config.DefaultBoolean(false)),与 AngelicaConfig.enableMCPatcherForgeFeatures(默认 true)形成两层控制:

AngelicaConfig.enableMCPatcherForgeFeatures (默认 true, RequiresMcRestart)
   └── 每个分类的 enabled 开关 (默认多为 false)
          └── 各项具体参数

即:MCPatcherForge 总开关默认开,但 6 个子模块各自还要再开一次。

相关条目