FarmingForEngineers.cfg

本 mod 唯一的 FML 配置项。真正的市场数据在 Market.json,本文件只管一件事:注册表告警要不要刷屏。

基本信息

属性 值 来源
读取类 com.guigs44.farmingforengineers.ModConfig ModConfig.java:5
配置文件 <config>/FarmingForEngineers/FarmingForEngineers.cfg FarmingForEngineers.java:68,73
读取时机 preInit 内 config.load() 后立即 ModConfig.preInit(config),有改动则 config.save() FarmingForEngineers.java:73-81
配置 API Forge Configuration(不是 @Config 注解、不是 ForgeConfigurationSpec、不是 Gson) ModConfig.java:9
配置项总数 1 ModConfig.java:10

配置项全表

键 分类 类型 默认值 说明(源码原文)
Show Registry Warnings client boolean false “Set this to true if you’re a modpack dev to see Farming for Engineers registry warnings in chat. Errors will always display.”

没有第二个配置项。ModConfig 全文只有一个 public static boolean showRegistryWarnings 字段与一次 getBoolean 调用;FarmingForEngineers.preInit 也只调 ModConfig.preInit(config) 这一次。

唯一配置项的作用范围

showRegistryWarnings 是 AbstractRegistry.logWarning 的唯一开关(registry/AbstractRegistry.java:216):

日志级别 写入日志 加入 registryErrors(→ 聊天栏)
logError 是 总是
logWarning 是 仅当 showRegistryWarnings == true

因此:

  • 设为 false(默认)→ 只有错误会在玩家进服和 /farmingforengineers reload 后刷到聊天栏
  • 设为 true → 告警也刷屏,给整合包作者排查第三方 mod 物品 ID 对不上时用

无论该值如何,FarmingForEngineers.logger.error 都会被调用——这个开关只影响聊天栏,不影响 log 文件。

分类名是 client 但值是 public static 静态字段、没有 ClientOnly 注解也没有 side 检查,服务端也会读取(服务端供 logWarning 判定用)。

其他可配置文件(不是 Configuration API)

以下两个文件由 mod 生成,但不经过 ModConfig / Configuration,因此在本文件里不可配置:

文件 格式 生成方式 说明
Market.json JSON(Gson,2 空格缩进) AbstractRegistry.load 市场条目,见 市场注册表
<config>/FarmingForBlockheads_at.cfg 纯文本单行 构建期 spotless.gradle / 打包附带 内容仅 public net.minecraft.creativetab.CreativeTabs field_78034_o # tabLabel,是**访问转换器(AT)**声明文件,与运行时配置无关

缺失配置的容错

  • 若配置文件不存在或某个键缺失,Configuration.getBoolean 写入默认值并置 hasChanged,preInit 末尾 config.save() 落盘
  • 若配置目录 <config>/FarmingForEngineers 不存在,preInit 先 mkdirs(),失败直接抛 RuntimeException("Couldn't create Farming for Engineers configuration directory")(只读文件系统会直接崩在启动阶段)

相关条目