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

缺陷

  1. 在 trait 的构造期调用 start():Scala trait 的初始化顺序会导致子类字段可能尚未赋值 就已启动线程读取它们,是典型的初始化竞态。
  2. 默认实现完全空转(不下载、不判断),即本 mod 默认状态下更新检查是 no-op; 真正逻辑须由使用者(Project Red 系列)自行实现。

相关条目

  • ModConfig — check_versions / check_unstable 开关