示例配置

基本信息

属性 值
类 com.gtnewhorizon.gtnhlib.ExampleConfig
源码 src/main/java/com/gtnewhorizon/gtnhlib/ExampleConfig.java(228 行)
注解 @Config(modid = GTNHLib.MODID, category = "example", filename = "gtnhlib-example")
类级附加注解 @Config.Order(0)、@Config.Entry(ExampleConfig.SortedCategory.class)
注册条件 if (!isObf()) —— 仅开发环境
注册位置 CommonProxy.java:99

这不是给玩家用的配置,而是 GTNHLib 附带的一份配置系统参考实现:下游 mod 照抄它即可知道 @Config 全部能力怎么用。

功能

isObf()(GTNHLibCore.isObf())返回 runtimeDeobfuscationEnabled,生产环境为 true,即混淆运行。因此 ExampleConfig 只会出现在开发环境(CommonProxy.java:98-99):

ConfigurationManager.registerConfig(NumberFormatConfig.class);
// only register in dev
if (!isObf()) ConfigurationManager.registerConfig(ExampleConfig.class);

普通安装不会生成 gtnhlib-example.cfg。

覆盖的配置特性

特性 演示位置
带颜色的字符串条目 GreenString extends GuiConfigEntries.StringEntry(:140)
排序分类 @Config.Order(0) + SortedCategory extends GuiConfigEntries.CategoryEntry(:98)
下拉选择 ModIDEntry extends GuiConfigEntries.SelectValueEntry(:122)
开关按钮 YellowBoolean extends GuiConfigEntries.ButtonEntry(:157)
嵌套分类 TestCategory(:44)内再嵌 testCategory2(:50)
可重载字段 reloadableField(:36)
按 mod 条件显示 hodgepodgeIntegration(:77)、itemSearchIntegration(:81)
外部 mod 集成示例 ThaumcraftCategory(:88)

默认字段值刻意写反以示区别(ExampleConfig.java:29、:36):

public static String greenField = "I should be Green";
public static String reloadableField = "I should be Reloadable";

hodgepodgeIntegration 默认 true 而 itemSearchIntegration 默认 false,用于演示 @Config.RequiresMod 一类注解按已加载 mod 切换默认值的效果。

数值

数值名 值
顶层配置字段 7(greenField、selectionList、reloadableField、redCategory、hodgepodgeIntegration、itemSearchIntegration、thaumcraft)
嵌套类总数 8(TestCategory、testCategory2、ThaumcraftCategory + 5 个 GuiConfigEntries 子类)
自定义 GuiConfigEntries 子类 5(SortedCategory、ModIDEntry、GreenString、RedCategory、YellowBoolean)
生产环境是否注册 否

ExampleConfig 引用 ThaumcraftCategory(:86),因此该类会触碰 Thaumcraft 相关类型 —— 这也是它只跑在开发环境的原因之一。

交互

玩家在 Forge 配置 GUI 中打开 GTNHLib 条目时,会看到 example 分类下这套演示界面;@Config.Order(0) 把它排在最前。开发者在 IDE 中改本文件即可验证自己新增的 @Config 注解行为。

由于生产环境不注册,ExampleConfig 在正式 jar 中只贡献 1 个未被读取的配置文件类,无运行时副作用。

相关条目