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 的自动配置机制未使用)。
相关条目