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

相关条目