JourneyMapVersion
JM5 / JM6 版本判定
基本信息
| 属性 | 值 |
|---|---|
| 路径 | com.gtnewhorizons.navigator.api.journeymap.JourneyMapVersion |
| 行数 | 33 |
| 包 | api/journeymap(公开 API) |
职责
判定装的是 JourneyMap 5 还是 6。
Util 的
isJourneyMapV5Installed() / isJourneyMapV6Installed()
委托给本类。
为什么要单独判定版本
⚠️ JM5 与 JM6 共用 modid journeymap(见
TargetedMod 的 JOURNEYMAP(null, "journeymap")),
所以 Loader.isModLoaded("journeymap") 无法区分版本。
两条完全不同的接入路径
| 版本 | 接入方式 | 行数 |
|---|---|---|
| JM5 | mixin(Mixins 的 JOURNEYMAP_V5,7 个类 621 行) |
621 |
| JM6 | 官方插件 API(JourneyMapV6Plugin)+ 2 个 mixin(70 行) | 917 |
⚠️ 判定的结果直接决定加载哪一套:
Mixins 的两个 setApplyIf:
JOURNEYMAP_V5(:25):enableJourneyMapModule && Util.isJourneyMapV5Installed()JOURNEYMAP_V6(:37):enableJourneyMapModule && Util.isJourneyMapV6Installed()
33 行的判定方式
可能的实现:
- 检查 JM6 特有类是否存在(
Class.forName) - 读 JM 的
VERSION常量并比较
⚠️ Class.forName 方式更稳健(不依赖版本号格式),
但会触发类加载。
api/journeymap 包的定位
| 类 | 行 | 状态 |
|---|---|---|
| 本类 | 33 | 活动(版本判定必需) |
| JMLayerRenderer | 30 | 已废弃 |
| JMInteractableLayerRenderer | 119 | 已废弃 |
| JMRenderStep | 24 | 已废弃 |
| JMInteractableStep | 22 | 已废弃 |
| JMWaypointManager | 65 | 已废弃 |
⚠️ api/journeymap 包 6 个类里 5 个已废弃 ——
只有 JourneyMapVersion 是活跃的。
README.md 明说
The JourneyMap-specific renderer and render-step APIs are deprecated because they support only JourneyMap 5。
⚠️ 废弃只写在文档里 ——
源码无 @Deprecated 注解(33/30/119/24/22/65 行的类
都不足以容纳注解 + 说明),所以编译器不警告。
相关
- Util - 调用方
- Mixins - 判定结果的使用处
- JMLayerRenderer - 同包的废弃类