Theseus 模组文档
API 参考 / 入口与生命周期

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()全部配置的只读快照

完整签名

java
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)

签名:

java
String get(String key, String defaultValue);

行为:读取字符串配置。key 不存在返回默认值;存在时用 String.valueOf 转换(数字、布尔会变成其文本形式),因此不会因类型不符而返回默认值。

示例:

java
String mode = ctx.config().get("mode", "normal");

getInt(String key, int defaultValue)

签名:

java
int getInt(String key, int defaultValue);

行为:key 不存在、值不是 Number、或字符串无法解析为整数时返回默认值。Double 值会截断取整(Number.intValue())。

示例:

java
int size = ctx.config().getInt("size", 12);

getBool(String key, boolean defaultValue)

签名:

java
boolean getBool(String key, boolean defaultValue);

行为:接受 Boolean,或忽略大小写等于 "true" / "false" 的字符串;其余情况返回默认值。数字 1 / 0 不会被当作布尔。

示例:

java
boolean enabled = ctx.config().getBool("enabled", true);

getDouble(String key, double defaultValue)

签名:

java
double getDouble(String key, double defaultValue);

行为:接受任意 Number(取 doubleValue()),或可解析为浮点的字符串;其余情况返回默认值。

示例:

java
double scale = ctx.config().getDouble("scale", 1.0);

set(String key, Object value)

签名:

java
void set(String key, Object value);

行为:写入内存并同步写盘(每次调用都重写整个 config.json)。写盘失败(IO 异常)只记录警告,不抛异常。值应为 JSON 可序列化的类型;null 也会被放入内存映射。

示例:

java
ctx.config().set("scale", 1.25);

getAll()

签名:

java
Map<String, Object> getAll();

行为:返回当前配置的只读快照(内部先复制再包成不可修改 Map);之后的 set 不会反映到已返回的 Map 上。

示例:

java
Map<String, Object> all = ctx.config().getAll();

线程:实例方法 synchronized 保护,可在事件处理器与滤镜中并发访问。加载时机:首次调用时懒加载;文件不存在或解析失败则返回默认值且不创建空文件。

稳定性:2.0 起冻结:2.x 内只增不破(禁止删签名 / 改签名 / 改语义);破坏性变更只在 major 版本发生且须提供迁移指南与至少一个大版本的弃用期。3.x 内继续只增不破。