config.json 配置项
基本信息
| 属性 | 值 |
|---|---|
| 文件名 | config.json |
| 位置 | <游戏目录>/config/spark/config.json |
| 路径来源 | SparkPlatform 构造:plugin.getPluginDirectory().resolve("config.json") |
| 插件目录来源 | Forge1710SparkMod.getConfigDirectory() = e.getModConfigurationDirectory().toPath()(Forge1710SparkMod.java:53) |
| 格式 | JSON,键扁平(无嵌套) |
| 读写时机 | 平台构造时读;trustedKeys、引擎降级、失败标记在运行期写 |
spark 没有 Forge Configuration 类或 cfg 文件——所有配置集中在这一个 JSON 里。Configuration 类只提供 getString / getBoolean / getInteger / getStringList 四种读取方法,没有 getLong / getDouble。
全部 8 个顶层配置键
以下清单由穷举 getConfiguration().get* 调用点得出,是全部用户可配置的键:
| 键 | 类型 | 默认值 | 作用 | 读取位置 |
|---|---|---|---|---|
viewerUrl |
string | https://spark.lucko.me/ |
查看器基础地址,上传后拼 key 得到报告链接 | SparkPlatform.java:126 |
bytebinUrl |
string | https://spark-usercontent.lucko.me/ |
二进制上传端点 | SparkPlatform.java:127 |
bytesocksHost |
string | spark-usersockets.lucko.me |
实时查看器的 socket 主机 | SparkPlatform.java:128 |
disableResponseBroadcast |
boolean | false |
命令回复是否只发给执行者而不广播 | SparkPlatform.java:134 |
backgroundProfiler |
boolean | 服务端 true / 客户端 false |
后台采样器总开关 | BackgroundSamplerManager.java:48 |
backgroundProfilerEngine |
string | "async" |
采样引擎,"java" 切内置引擎 |
BackgroundSamplerManager.java:104 |
backgroundProfilerInterval |
integer | 10 |
后台采样间隔(毫秒) | BackgroundSamplerManager.java:112 |
backgroundProfilerThreadGrouper |
string | "by-pool" |
线程归并方式 | BackgroundSamplerManager.java:106 |
backgroundProfilerThreadDumper |
string | "default" |
采样哪些线程 | BackgroundSamplerManager.java:107 |
trustedKeys |
string 列表 | 空 | 已信任的查看器客户端公钥 | TrustedKeyStore.java:118 |
上表共 10 行 —— 前 4 项是端点与行为开关,后 5 项属 后台采样器,最后 1 项是查看器信任链。
trustedKeys 是唯一的列表型键,通过独立的 getStringList / setStringList 读写(TrustedKeyStore.java:118,136),与 getString 走的是不同的序列化分支。
内部状态键
_marker_background_profiler_failed(boolean)不是用户配置项,由 spark 自行写入与清除,用于「上次启动后台采样器失败」的跨重启标记。详见 采样引擎 · 失败回退。
会被 spark 自动改写的键
以下情况 spark 会主动修改配置文件并落盘,即使管理员从未编辑过:
| 触发条件 | 改写行为 | 位置 |
|---|---|---|
| 首次按默认值启用后台采样器 | 写入 backgroundProfiler: true |
BackgroundSamplerManager.java:57-59 |
| 上次启动失败标记存在 | 删除 _marker_background_profiler_failed,写入 backgroundProfilerEngine: "java" |
BackgroundSamplerManager.java:63-72 |
| 启停后台采样器 | 写入/删除失败标记 | BackgroundSamplerManager.java:74-86 |
| /spark profiler trust-viewer | 追加到 trustedKeys |
TrustedKeyStore.setStringList |
因此备份或版本管理 config.json 时需注意:它不是纯手写配置文件,运行时会被 spark 修改。
1.7.10 特有的配置后果
- 客户端与服务端各有一份
config.json:两端各自构造SparkPlatform,共用同一个configDirectory,但写入时机不同,可能互相覆盖。disableResponseBroadcast、trustedKeys等行为在两端各自生效 - 客户端的后台采样器配置不生效:即使把
backgroundProfiler设为true,type != PlatformInfo.Type.CLIENT的判定仍会禁用它
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 可配置顶层键数量 | 10 | 穷举 configuration.get* 调用点 |
| 内部状态键数量 | 1(_marker_background_profiler_failed) |
BackgroundSamplerManager.MARKER_FAILED |
Configuration 支持的读取类型 |
4 种(string / boolean / integer / string list) | Configuration.java:81,90,100,110 |