UpdateChecker
基本信息
| 属性 |
值 |
| 路径 |
mrtjp.core.data.UpdateChecker |
| 类型 |
trait(继承 Thread) |
| 源码 |
src/main/scala/mrtjp/core/data/UpdateChecker.scala |
更新检查器的抽象基类。它继承 Thread 并在 init 块末尾直接 start()(第 29 行),
即:只要某个类 extends UpdateChecker,其构造就会自动启动一个线程。
需要子类实现的成员
| 成员 |
说明 |
project |
项目名(用于线程名 <project> version checker) |
changelogURL |
更新日志地址 |
currentVersion |
当前版本串 |
shouldRun |
是否应执行检查 |
默认实现
| 成员 |
默认值 |
downloadVersions |
返回 Seq.empty(不联网) |
isVersionOutdated(v) |
恒返回 false |
run() |
空实现 |
updatesChecked |
true |
缺陷
- 在 trait 的构造期调用
start():Scala trait 的初始化顺序会导致子类字段可能尚未赋值
就已启动线程读取它们,是典型的初始化竞态。
- 默认实现完全空转(不下载、不判断),即本 mod 默认状态下更新检查是 no-op;
真正逻辑须由使用者(Project Red 系列)自行实现。
相关条目
- ModConfig —
check_versions / check_unstable 开关