ConfigTemplate

基本信息

属性 值
类名 myessentials.config.api.ConfigTemplate
类型 abstract class,3 个 protected 字段 + 8 个方法
启用版本 Minecraft 1.7.10

功能

配置绑定与热重载的框架基类,被 Config 继承。

3 个 init 重载

签名 用途
init(String forgeConfigPath, String modID) 由路径字符串初始化
init(File forgeConfigFile, String modID) 由文件初始化
init(Configuration forgeConfig, String modID) 由已有 Configuration 初始化

三者最终都汇入第三个:this.config = ...; this.modID = modID; bind(); reload();

方法

方法 说明
getForgeConfig() 取底层 Configuration
getModID() 取 modid
addBinding(ConfigProperty) 追加绑定(不重载)
addBinding(ConfigProperty, boolean reload) 追加绑定,可选立即重载
reload() config.load() 后逐项回填

实现要点

  • properties 是 protected List<ConfigProperty>(裸类型,无泛型参数)。
  • reload() 的流程是:先 config.load(),再对 properties 中每项 取 config.getCategory(property.category) 并把文件值写回 ConfigProperty。
  • reload() 依赖 properties 已填充。bind() 通过反射扫描 this 的所有 ConfigProperty 字段并加入列表—— 这就是 Config 只需声明字段、无需手动 addBinding 的原因。
  • 异常处理用 org.apache.commons.lang3.exception.ExceptionUtils。
  • 本类没有 @Config 注解(Forge 的自动配置机制未使用)。

相关条目