ModConfig
模组配置文件读写接口(扁平 key-value JSON),封装 <dataDir>/config.json。值类型限定 String / Integer / Double / Boolean / List<Object>;复杂结构模组自行 JSON 序列化为 String 存储单个 key。
方法速览
| 方法 | 用途 |
|---|---|
get(String, String) | 读字符串(任意值转字符串) |
getInt(String, int) | 读整数 |
getBool(String, boolean) | 读布尔 |
getDouble(String, double) | 读浮点 |
set(String, Object) | 写配置并同步落盘 |
getAll() | 全部配置的只读快照 |
完整签名
public interface ModConfig {
String get(String key, String defaultValue);
int getInt(String key, int defaultValue);
boolean getBool(String key, boolean defaultValue);
double getDouble(String key, double defaultValue);
void set(String key, Object value);
Map<String, Object> getAll();
}get(String key, String defaultValue)
签名:
String get(String key, String defaultValue);行为:读取字符串配置。key 不存在返回默认值;存在时用 String.valueOf 转换(数字、布尔会变成其文本形式),因此不会因类型不符而返回默认值。
示例:
String mode = ctx.config().get("mode", "normal");getInt(String key, int defaultValue)
签名:
int getInt(String key, int defaultValue);行为:key 不存在、值不是 Number、或字符串无法解析为整数时返回默认值。Double 值会截断取整(Number.intValue())。
示例:
int size = ctx.config().getInt("size", 12);getBool(String key, boolean defaultValue)
签名:
boolean getBool(String key, boolean defaultValue);行为:接受 Boolean,或忽略大小写等于 "true" / "false" 的字符串;其余情况返回默认值。数字 1 / 0 不会被当作布尔。
示例:
boolean enabled = ctx.config().getBool("enabled", true);getDouble(String key, double defaultValue)
签名:
double getDouble(String key, double defaultValue);行为:接受任意 Number(取 doubleValue()),或可解析为浮点的字符串;其余情况返回默认值。
示例:
double scale = ctx.config().getDouble("scale", 1.0);set(String key, Object value)
签名:
void set(String key, Object value);行为:写入内存并同步写盘(每次调用都重写整个 config.json)。写盘失败(IO 异常)只记录警告,不抛异常。值应为 JSON 可序列化的类型;null 也会被放入内存映射。
示例:
ctx.config().set("scale", 1.25);getAll()
签名:
Map<String, Object> getAll();行为:返回当前配置的只读快照(内部先复制再包成不可修改 Map);之后的 set 不会反映到已返回的 Map 上。
示例:
Map<String, Object> all = ctx.config().getAll();线程:实例方法 synchronized 保护,可在事件处理器与滤镜中并发访问。加载时机:首次调用时懒加载;文件不存在或解析失败则返回默认值且不创建空文件。
稳定性:2.0 起冻结:2.x 内只增不破(禁止删签名 / 改签名 / 改语义);破坏性变更只在 major 版本发生且须提供迁移指南与至少一个大版本的弃用期。3.x 内继续只增不破。