JourneyMap Legacy
[!INFO] Git Commit:
2e19415| Updated: 2026-10-02
JourneyMap 是 GTNH 1.7.10 上的全屏世界地图模组,提供实时渲染的小地图与全屏地图、路点系统、实体雷达,以及可选的浏览器 Web 地图。它是典型的"零内容"模组——不注册任何方块、物品、实体、TileEntity 或合成配方,全部价值在渲染、配置与界面层。
⚠️ modid 与分类名不同:本 wiki 分类名是
journeymap-legacy,而游戏内的 modid 是journeymap。modid 取自源码三处一致的定义——Journeymap.MOD_ID = "journeymap"(src/main/java/journeymap/common/Journeymap.java:40)、@Mod(modid = Journeymap.MOD_ID, ...)(:32)、gradle.properties的modId = journeymap,以及mcmod.info的"modid": "journeymap"。journeymap-legacy是仓库名(远端GTNewHorizons/journeymap-legacy)与本 wiki 分类名,不是游戏内 ID;资源命名空间同样是journeymap。这与data/下的at分类(Xaero/Atlas 那一系)也是两个不同的 mod,不可混用。
源码与版本
本文档全部内容来自单一检出的 master 分支,HEAD 提交 2e194152cbcb3f376d09becd203d4c53daf7e9ab(提交信息 Merge branch 'TeamJM:master' into master,日期 2026-09-17)。git cat-file -t 2e19415 返回 commit,哈希真实存在。
跨版本隔离核验:该仓库只有 master 一个本地分支、没有任何 tag,git rev-list --count HEAD 为 1(历史被压成单提交)。全树只有 1 个 Minecraft 版本:gradle.properties 的 minecraftVersion = 1.7.10,project.properties 的 minecraft_version=1.7.10,以及 MixinLoadingPlugin 的 @IFMLLoadingPlugin.MCVersion("1.7.10")。逐项排查其它版本字符串后确认无跨版本内容:
| 表面命中 | 实际含义 |
|---|---|
ConfigHandler.java:24 的 CONFIG_VERSION = 1.12F |
配置结构版本号,与 Minecraft 1.12 无关 |
BaseRenderer.java:90 的 1.20f |
山体阴影乘数浮点数 |
源码中虽有若干 // 1.8 / // 1.8.8 的注释掉的 import 与方法签名对照(如 Constants.java:29-31、KeyEventHandler.java:29-32、CommandJMServerForge.java:27、:42、:56),说明这些文件曾为多版本共用,但均为注释,不参与编译。
源码语言为纯 Java:298 个 .java 文件,.scala / .kt 均为 0。
依赖
硬依赖只有 Forge 一个:@Mod(dependencies = "required-after:Forge@[BuildInfo.FORGE_VERSION,)")(Journeymap.java:37),版本 10.13.4.1614(gradle.properties 的 forgeVersion 与 project.properties 的 forge_version)。mcmod.info 中同样只声明 Forge@[${forgeversion},)。
dependencies.gradle 中的 5 条依赖全部是构建期依赖,不是游戏 mod:javax.servlet-api:4.0.1、info.journeymap:webmap-client:0.8-SNAPSHOT、io.javalin:javalin:4.6.8(均为 shadowImplementation,会被重定位打包进 jar),以及 slf4j-simple / slf4j-api 1.8.0-beta4。UniMixins 是软依赖(jar 已移除 manifest 的 TweakClass,未装也不崩)。对第三方 mod 的集成(Thaumcraft、AE2、Chisel 等)也全部是软依赖,未在 @Mod 中声明。
内容统计(均为活跃项)
| 类别 | 数量 | 备注 |
|---|---|---|
| 方块 / 物品 / TileEntity / 实体 / 合成配方 | 0 / 0 / 0 / 0 / 0 | 核验:GameRegistry.register*、registerBlock、registerItem、registerTileEntity、registerModEntity、CraftingManager 在全树均无注册调用 |
| 按键绑定 | 6 | 全部注册(ClientRegistry.registerKeyBinding) |
| 服务端指令 | 1 | /jmserver,2 个顶层子命令 + 4 个二级子命令 |
| 网络通道 | 1 | world_info |
| Mixin | 2 | 均为客户端 |
| FML 事件处理器 | 5 | 4 客户端 / 1 服务端 |
@SubscribeEvent 方法 |
12 | 客户端 11 + 服务端 1 |
配置项(@Config) |
95 | 92 个唯一字段名;死配置项 0 个 |
| 客户端配置文件 | 6 | JSON 格式 |
| 权限控制功能 | 5 | Feature 枚举 |
| 地图类型 | 5 | MapType.Name |
| 制图渲染器 | 5 | + 1 抽象基类 |
| 实体雷达类别 | 4 | + 自身数据缓存 |
| Web 地图 HTTP 路由 | 9 | 8 GET + 1 POST |
| 内置主题 | 2 | + Vault 用户目录 |
维度列表
配置文件
- 配置文件 - 6 个客户端 JSON 配置与每世界 1 个服务端 cfg 的加载、版本与校验规则
配置选项
- 核心选项 -
journeymap.core.config的 38 项,含渲染距离与雷达半径 - 小地图选项 - 两套小地图预设的 17 项,及预设 2 的出厂值
- 地图显示选项 - 三个地图配置共用的 20 项图层与文字开关
- 路点选项 -
journeymap.waypoint.config的 19 项,含信标淡出 - Web 地图选项 - 启用开关与端口,含端口占用静默回退
界面
- 全屏地图 - 8 个主题按钮、缩放与工具栏布局
- 小地图 - HUD 绘制门禁、两套预设、MapState 缩放
- 路点管理器与编辑器 - 列表排序、拖拽、单点编辑与存储
- Options Manager - 用反射从 95 个
@Config字段自动生成 8 个页签 - 主题系统 - 2 个内置预设 +
Vault用户主题目录 - 网格编辑器 - 昼/夜/地下三套网格规格与 3 种样式
API
集成
- 第三方 mod 方块着色集成 - 5 个处理者覆盖 CarpentersBlocks、TFC、BiomesOPlenty 等
- Mixin 集成 - 删除存档时一并清理地图数据的 2 个客户端 mixin
- 聊天控制码 - 服务端用不可见颜色码禁用玩家雷达/洞穴的协议
渲染
- 地图类型 - 日/夜/地下/地表/地形 5 型与垂直切片缓存键
- 制图渲染器 - 5 个区块渲染器、继承链与 Strata 逐层下挖
- 切片与网格渲染 - 4 档 OpenGL 参数、区域图集与缓存重置级联
- 小地图叠加层渲染 -
RenderGameOverlayEvent挂载与 PRE/POST 时机控制 - 路点信标渲染 - 三维光柱的距离淡出与分层 alpha
其它维度
- 雷达实体 - 4 类实体的缓存、刷新间隔与排序(不注册任何实体)
- World ID 同步 -
world_info通道与 1000 ms 请求节流 - Web 地图服务器 - 内嵌 Javalin 的 9 条路由与 3 种静态资源来源
- 热键绑定 - 6 个按键 + 4 个 Ctrl 组合的分发优先级
- /jmserver 指令 - 权限等级 3 的服务端诊断指令