GeneralConfig

2 项(调试图层 / 记住搜索文本)

基本信息

属性 值
路径 com.gtnewhorizons.navigator.config.GeneralConfig
行数 16
注解 @Config(modid = "navigator") —— 无 category

modid 是字符串字面量

@Config(modid = "navigator")

⚠️ 没有用 Navigator.MODID 常量,而是硬编码 "navigator"。 ModuleConfig 同样如此。 若 modid 改名,两处都要改,编译器不会报错。

2 个配置项(全是 public static)

字段 注解 默认值
enableDebugLayers @Config.Comment("Enable debug layers") + @Config.DefaultBoolean(false) false
rememberSearchText @Config.Comment("Keep the fullscreen map search text when reopening the map") + @Config.DefaultBoolean(true) true

⚠️ 字段是 public static 可变,不是 final —— GTNHLib 配置框架靠反射写回,所以不能是 final。

⚠️ 两个字段没有 final,也没有 private 构造器约束 —— 类可被实例化(虽然无意义)。

消费点

字段 消费方
enableDebugLayers ClientProxy 的 preInit(:22-24)—— 为真才注册 DirtyChunkLayerManager
rememberSearchText FormattedTextField / SearchBar 的全屏地图重开逻辑

⚠️ enableDebugLayers 默认 false —— 本仓自带的唯一可见图层(脏区块调试)默认不生效。

注册时机

由 NavigatorCore 的 static 块(:20-27) 调 ConfigurationManager.registerConfig(GeneralConfig.class) 注册。 static 块保证在 coremod 阶段就完成读盘, 早于任何使用方。

⚠️ 注册失败会包成 RuntimeException 抛出(:25), 配置损坏直接崩类加载。

没有 category

@Config(modid = "navigator") 不带 category, 所以两项落在配置的根分类。 对比 ModuleConfig 显式用 category = "modules"。

生成的文件名通常是 navigator.cfg 或 navigator-general.cfg(由 GTNHLib 决定)。

相关