旅行模式 JM

旅行模式 JM

一个Minecraft模组,让你在收集足够多的物品后,能够解锁无限访问权限。

🎮 旅程模式

为 Minecraft 忠实还原《泰拉瑞亚》的旅程模式体验。 牺牲足够数量的任何物品即可永久复制它——无需机器,无需能量消耗,没有终局门槛,也没有任何依赖。只需存入、解锁,然后无限取用。


支持的版本 NeoForge Forge Fabric 许可证 GitHub 星标


⚠️ 正在使用 1.8.0?请更新至 1.8.1。

1.8.0 在部分整合包中存在一个严重影响游戏的 Bug:在某些模组组合下,将物品放入“存入”槽位会直接导致游戏卡死,且没有崩溃报告,日志中也没有任何相关记录。此外,九个 1.8.0 下载文件中,有四个携带了本应移除的解锁音效。 这两个问题都已在 1.8.1 中修复,同时修复的还有 Shift-点击取回物品的 Bug 和两个界面重叠问题——详情请参阅更新日志。更新可直接替换,无需额外操作;你的图鉴、队伍和配置都会原封不动地保留。


⚡ 为什么选择旅程模式?

  • 🧩 自动兼容所有模组。 任何拥有配方或注册表条目的物品都可被研究——原版、机械动力、通用机械等等,无一例外。无需 JEI 或任何其他前置依赖。
  • 🗂️ 跨存档进度。 解锁数据存储在全局配置文件中(journeymode_unlocks.json),而非世界存档内。删除世界、切换服务器、重建整合包——你的图鉴始终都在。
  • 🧪 识别子类型的物品研究(1.7.1+)。 药水、附魔书、山羊角和迷之炖菜都会被作为独立条目追踪。研究跳跃药水,取回的就是跳跃药水——而不是一个无法合成的普通药水。
  • 📐 零配置的智能阈值。 一个配方树计算器会根据制作深度自动为每件物品定价——从原材料的 64 个到复杂合成品的 1 个。开箱即用地适用于模组配方。
  • 🌍 在所有旅程类模组中支持范围最广: 支持 Minecraft 1.12.2 至 1.21.x,覆盖 Forge、Fabric 和 NeoForge 加载器。

📦 运作方式

[ 存入物品 ] ──> [ 追踪进度 ] ──> [ 永久解锁 ] ──> [ 无限取用 ]

1. 存入

按下 J 键打开图鉴。将物品放入“存入”槽位——或者直接从你的物品栏中 Shift-点击堆叠物品——即可计入研究进度。

空的存入界面 你的旅程从这里——存入面板——开始。

2. 追踪

界面会精确显示你还需要多少该物品。

显示物品进度的存入界面 存入时实时显示所需的阈值。

3. 无限取用

一旦解锁,即可从可搜索的“旅程”标签页中取出无限数量的物品。左键单击取出 1 个,Shift + 左键单击取出完整一组。新解锁的物品会排在最前面。

旅程标签页和图鉴网格 属于你的永久、可搜索的物品图鉴。


🚀 功能亮点

  • ✨ 智能研究引擎 — 存入物品,达到阈值,永久解锁。
  • 👥 共享队伍图鉴(1.8.0+) — 使用 /journeymode team create|join|leave|info|kick|transfer 命令。与服务器上的朋友共享存入物品和已解锁物品;离开队伍时会保留一份队伍已解锁物品的快照。
  • 📥 全部存入(1.8.0+) — 一键存入主物品栏中所有已可研究的物品;Shift-点击该按钮可同时存入快捷栏物品。
  • 🔍 进度提示(1.8.0+) — 直接在物品提示框中查看“37/64 已研究”或“已解锁”,无需打开图鉴。
  • 📊 图鉴统计(1.8.0+) — 一个专用的“统计”标签页:总解锁/可研究数、完成百分比、各模组细分,以及你最近解锁的物品。
  • 💎 稀有度感知阈值(1.8.0+) — 下界之星、海洋之心、回响碎片等其他无配方稀有物品的定价会依据其实际稀有程度,而不会像圆石那样处理。
  • 🔌 正则表达式、标签与数据包(1.8.0+) — blacklist.json/custom_thresholds.json 支持精确 ID、物品标签(#c:ingots)以及正则/通配符模式;整合包作者还可以随包附带阈值数据包。为其他模组提供完整的开发 API 以便集成。
  • 🔄 实时配置同步(1.8.0+) — 服务端的黑名单/阈值更改会立即推送给所有已连接的客户端,无需重启。
  • ⚡ 物品栏实用工具 — Shift-点击倾倒可立即将物品栏中已解锁的杂物丢弃;拖拽删除允许你将一组物品拖到其图鉴图标上将其销毁,泰拉瑞亚风格。
  • 🔍 可搜索的双标签页界面 — “存入”和“旅程”面板均支持实时搜索,并按最新优先排序。
  • 🛡️ 服务端权威且防作弊 — 每次解锁和取回操作都会在服务端进行验证。被篡改的客户端无法生成未解锁的物品。
  • 🚄 针对大型整合包优化(1.7.0+) — O(1) 配方索引意味着即使在大型整合包中打开菜单也不会有任何帧率卡顿,并且损坏的第三方配方会被安全隔离,而不会导致客户端崩溃。
  • 💀 死亡、维度与重生安全 — 进度不会因游戏事件而丢失。

📐 自动阈值

阈值根据物品的制作难度而成比例变化——制作链条越深,蕴含的价值越高,因此所需数量越少:

物品类型 示例 默认阈值
原材料(无配方) 铁矿石、原木、圆石 64 (1 组)
简单合成(深度 1) 铁锭、木板 32
二次合成(深度 2) 铁块、箱子 16
复杂合成(深度 3+) 红石比较器 1
工具、武器、盔甲及不可堆叠物品 钻石镐、鞘翅、桶 1

💡 每个值都可以在 custom_thresholds.json 中针对单个物品进行覆盖——这对于为下界之星等稀有不可合成物品定价或平衡整合包非常有用。


💾 全局存档

你的图鉴存储在你的 Minecraft 安装目录(或服务器文件夹)根目录下的一个文件中:

.minecraft/
├── config/Journey Mode/
│   ├── blacklist.json
│   └── custom_thresholds.json
├── journeymode_unlocks.json   <-- 你的永久图鉴
└── saves/
  • 可迁移 — 将 journeymode_unlocks.json 复制到新电脑即可迁移、备份,或与朋友分享已研究的图鉴库。
  • 多人游戏安全 — 条目以玩家 UUID 为键,因此一个服务器文件可以清晰追踪每个玩家。
  • 管理员友好 — 离线编辑 JSON 文件即可授予物品、重置玩家或检查进度。每个条目都会追踪存入数量、已解锁物品和解锁时间戳。

👥 队伍图鉴有意的不同工作方式。 个人进度会跟随你到任何地方(这就是上述全局存档的意义所在),但队伍的共享图鉴则绑定在其创建时所在的特定世界/服务器上,存储在该世界的存档文件夹中——因此一个服务器上的“阿尔法小队”绝不会渗透到另一个服务器或你自己的单人世界。


⚙️ 配置

配置文件会在 config/Journey Mode/ 目录下自动生成,并且支持热重载——无需重启。

blacklist.json — 阻止物品被研究:

{
  "blacklisted_items": [
    "minecraft:bedrock",
    "minecraft:barrier",
    "minecraft:command_block"
  ]
}

custom_thresholds.json — 为单个物品覆盖计算器的定价:

{
  "thresholds": {
    "minecraft:nether_star": 3,
    "minecraft:enchanted_golden_apple": 3,
    "minecraft:netherite_ingot": 5
  },
  "default_override": null,
  "max_threshold_cap": 64
}

自 1.8.0 起,这两个文件都接受三种键格式——按此顺序检查:精确物品 ID → 物品标签 → 正则/通配符模式:

{
  "thresholds": {
    "minecraft:nether_star": 3,
    "#c:ingots": 32,
    "gtceu:.*_circuit": 4
  }
}
  • 精确 ID 始终优先("minecraft:nether_star": 3)。
  • 标签("#c:ingots")会同时为该标签下的所有物品定价。(1.12.2 没有原版标签系统——该版本的标签规则会映射到 OreDictionary 条目。)
  • 正则/通配符("gtceu:.*_circuit",或类似 "create:*_casing" 的简单通配符)会捕获其余所有匹配项。
  • default_override 为所有没有更具体规则的物品设置一个回退阈值——这也是 /journeymode all 命令写入的值。
  • max_threshold_cap 限定了 /journeymode threshold 和 /journeymode all 命令可接受的最大值(默认为 64)。
  • 整合包作者还可以在 data/<namespace>/journeymode/thresholds/*.json 路径附带 数据包形式的阈值包——无需编辑配置文件。(1.12.2 不适用,因其早于现代数据包系统。)
  • 其他模组可以通过一个小型、无依赖的开发 API 注册自己的 阈值提供器/规范化规则。
  • 所有配置更改都会实时推送给已连接的客户端——无需重启,无需重新连接。

📖 命令与操作

所有玩家

命令 描述
/journeymode on 为自己启用旅程模式(GUI 访问和存入功能)
/journeymode off 禁用旅程模式
/journeymode status 检查你当前的启用状态
/journeymode reset 永久清除你的图鉴并从零开始
/journeymode tooltips on\|off 切换你自己物品上的“已研究 N/阈值”提示
/journeymode team create <name> 创建一个队伍。你将成为队长。
/journeymode team join <name> 加入一个队伍——你的存入和物品解锁将与其合并
/journeymode team leave 离开当前队伍,并保留该队伍已解锁物品的快照
/journeymode team info 查看你队伍的名称、成员数量和已解锁物品数量
/journeymode team kick <player> 仅限队长:移除一名成员(该成员必须在线)
/journeymode team transfer <player> 仅限队长:将队长职位移交给另一名成员(该成员必须在线)

服务器管理员

命令 描述
/journeymode reloadconfig 重新读取配置文件并将规则重新推送给所有在线客户端
/journeymode all <count> confirm 为所有物品全局设置一个回退阈值(单个物品的覆盖仍然生效)
/journeymode all reset 移除全局回退阈值
/journeymode threshold <item> <count> 即时设定某个物品的阈值
/journeymode threshold hand <count> 功能同上,但针对你手中物品的精确子类型(例如某一种特定的药水)
/journeymode threshold <item> remove 删除特定物品的阈值覆盖设置
/journeymode grant <player> <item> 立即为某位玩家解锁一个物品——即使该玩家离线也有效
/journeymode revoke <player> <item> 撤销某位玩家的一个解锁,并重置该物品的进度

按键绑定: 按下 J 键打开图鉴(可在 选项 → 控制 → 按键绑定 → 旅程模式 中重新绑定)。


🚀 安装

下载与你 Minecraft 版本和加载器匹配的文件。Fabric 版本需要 Fabric API;Forge/NeoForge 版本完全没有依赖。

Minecraft 版本 Java 版本 加载器 最低加载器版本
1.21.1 21 NeoForge、Fabric NeoForge 21.1.72+ · Fabric 0.19.2+ + Fabric API
1.20.1 (长期支持版) 17 Forge、Fabric Forge 47.4.10+ · Fabric 0.19.2+ + Fabric API
1.19.2 17 Forge、Fabric Forge 41.1.0+ · Fabric 0.14.9+ + Fabric API
1.16.5 8 Forge、Fabric Forge 36.2.39+ · Fabric 0.11.7+ + Fabric API
1.12.2 8 Forge Forge 14.23.5.2860+

多人游戏需要同时安装在客户端和服务端。单人游戏只需要安装客户端。

🧱 在 1.12.2 版本中,元数据子类型(石头变种、羊毛颜色、染料)会被分别追踪和独立解锁。


❓ 常见问题

对模组物品有效吗? 是的,自动生效。配方计算器读取游戏的RecipeManager,因此模组配方会像原版配方一样获得基于深度的阈值。没有配方的模组物品将默认使用原材料阈值,并可通过 custom_thresholds.json 进行调整。

我可以在我的整合包中使用它吗? 当然可以——放心使用。若能在说明中注明来源或链接,我们将不胜感激。

对生存服务器来说平衡吗? 旅程模式本质上是一种模式,而非生存平衡性附加组件——它设计上就不包含能量消耗或制作门槛。服务器所有者可以通过黑名单、自定义阈值以及按玩家生效的 /journeymode on|off 开关来调整游戏体验。

我的进度会在世界/服务器之间转移吗? 在你自己的世界之间,会的——这正是它的意义所在。在多人游戏服务器上,进度存储在服务器的配置文件中,并按玩家进行追踪。


🗺️ 路线图

以往列在这里的所有内容——共享队伍图鉴、实时配置同步、集成 API(正则/标签/数据包/开发者接口)、全局/单物品阈值命令、管理员授予/撤销、稀有度感知阈值、全部存入、进度提示和图鉴统计——都已在 1.8.0 中实现,而 1.8.1 是你需要的修复版本(请参见顶部的警告)。具体请参阅下方更新日志。

下一步计划:

  • 🎒 E-菜单解锁集成 — 在你的原版物品栏(E)界面内增加一个简短的取用条和存入槽位,作为现有旅程(J)图鉴的补充,而非替代。

完整更新日志见下方及 GitHub 发布页面。


📋 更新日志

版本 1.8.1 (关键修复——请从 1.8.0 更新)

发布日期: 2026 年 7 月

⚠️ 1.8.0 在部分整合包上存在一个严重影响游戏的 Bug。 在某些模组组合下,仅仅是将物品放入“存入”槽位就会直接导致游戏冻结——没有崩溃报告,日志中也没有错误信息,毫无线索。此外,九个 1.8.0 下载文件中,有四个携带了本应在发布前移除的解锁音效。 这两个问题以及下文列出的所有其他问题都已在此版本中修复。如果你正在使用 1.8.0,请立即更新。 你的图鉴、队伍和配置都会原封不动地保留——无需任何迁移步骤,也无需重新研究任何物品。

这是一个错误修复版本:1.8.0 的所有功能均保持不变,仅修复了以下缺陷。

🧊 修复:将物品放入“存入”槽位时游戏冻结

在制作图谱包含环路的整合包中,“存入”标签页在每一渲染帧都会重新遍历一大片配方图,导致渲染线程无限期地占用 100% CPU。没有崩溃报告、没有日志行、也没有错误——看起来只是卡住了。由于普通的原版门、船和告示牌会从另一端闭合环路,只需一个“将此物合成回木板”的逆向配方就足以触发;普通的木棍、原木和楼梯也可能引发此问题。

共应用三项修复,覆盖全部九个版本:阈值结果现在被正确缓存(包括通过配方循环解析出的结果);界面仅在存入槽位中的物品实际变化时才重新计算;配方遍历本身在深度和总工作量上均设置了硬性上限,确保任何配方图都无法使其停滞。

🔇 修复:解锁音效仍然播放

针对 Forge 1.12.2、Forge 1.16.5、Forge 1.20.1 和 NeoForge 1.21.1 的 1.8.0 下载文件是在解锁音效移除前构建的,因此仍携带了该音效。全部九个 1.8.1 的 jar 文件均已从当前源代码重新构建——解锁反馈信息现在仅通过屏幕消息呈现,符合设计预期。

🩹 其他修复

  • Shift-点击取出物品时总是取出 64 个。 在“旅程”标签页中 Shift-点击物品本意是取出一整组——但“一整组”取决于物品种类,而该功能被硬编码为 64。剑(堆叠上限为 1)会被取出 64 个单独的槽位;药水(堆叠上限为 16)同理。现在取出操作会使用每种物品自身的堆叠上限,并在服务端和客户端同时强制执行。如果整合包提高了堆叠上限,那么取出的数量也会相应提高,正如你所期望的那样。
  • 队伍名称与“旅程模式”标题重叠。 徽章和标题绘制在同一行,因此任何足够长的队伍名称都会直接穿过标题。现在它们各自独占一行。
  • 统计标签页中的按模组列表溢出面板。 该列表之前限制为 6 行且没有空间检查,因此在包含多个命名空间的整合包中,列表会延伸到“最近解锁:”行下方,甚至覆盖到下面的“物品栏”标签。现在该列表支持滚动——鼠标滚轮,内容过多时会出现滚动条——过长的模组 ID 会被截断以适应空间,并且每行的位置都会根据其下方的元素进行测量。
  • Forge 1.19.2 版本完全缺失解锁消息和队伍名称徽章——其同步处理器从未更新以支持 1.8.0 的数据格式。现在九个版本的行为完全一致。
  • 全部存入 在批量屏幕消息之外,还为每个已解锁的物品打印一行聊天信息;现在只显示一行汇总信息。
  • 性能: “旅程”标签页的搜索、统计标签页和进度提示不再每帧重建其整个视图——在大型图鉴上效果显著,且行为无任何变化。
  • 健壮性: 数据同步数据包在大型图鉴下不再可能超过 Minecraft 的数据包大小限制(这会导致客户端每次加入时都被断开连接),配方深度解析在病态的模组配方图中也不再可能溢出堆栈。

版本 1.8.0 (队伍、配置同步、集成 API 与体验优化)

发布日期: 2026 年 7 月

👥 共享队伍图鉴

  • 队伍命令:可使用 /journeymode team create|join|leave|info|kick|transfer 命令管理队伍。存入物品和已解锁物品都会与队伍共享;离开队伍时,队伍已解锁的物品快照会复制到你的个人图鉴中。
  • 按世界存储队伍数据:队伍进度存储在游戏世界/服务器存档中,而非全局配置中——队伍数据绝不会在无关的服务器或单人世界之间混淆。

🔄 实时配置同步与集成 API

  • 即时配置同步:黑名单和阈值规则的更改会立即推送给所有已连接的客户端——无需重启,无需重新连接。
  • 正则、标签和数据包规则:blacklist.json/custom_thresholds.json 现在支持精确 ID、物品标签(#c:ingots)以及正则/通配符模式。整合包作者还可以附带阈值数据包,无需编辑配置文件。
  • 开发者 API:一个小型、无依赖的 API(阈值提供器、规范化规则)允许其他模组注册自定义阈值以及 NBT/组件规范化规则。

⚙️ 新命令

  • /journeymode all <count> confirm / all reset — 为所有物品设置(或清除)一个全局回退阈值。
  • /journeymode threshold <item|hand> <count> / threshold <item> remove — 即时修正单个物品的阈值,并附带 hand 变体以针对精确的药水/附魔书子类型。
  • /journeymode grant|revoke <player> <item|hand> — 管理员授予或撤销解锁,对离线玩家同样有效。
  • /journeymode tooltips on|off — 按玩家切换新的进度提示功能。
  • /journeymode reloadconfig — 重新读取配置文件并重新同步所有客户端。

🎁 体验优化

  • 全部存入:一个按钮即可存入主物品栏中所有已可研究的物品;Shift-点击可连同快捷栏物品一并存入。
  • 进度提示:直接在物品提示框中显示“37/64 已研究”或“已解锁”。
  • 图鉴统计:新增“统计”标签页——显示总解锁/可研究数、完成百分比、各模组细分,以及你最近解锁的物品。
  • 稀有度感知阈值:无配方的稀有物品(下界之星、海洋之心、回响碎片等)现在所需的阈值远低于相同堆叠上限的普通原材料。
  • 解锁反馈:当你跨过研究阈值时,屏幕会显示一条消息。

🛠️ 修复

  • 模组堆叠上限 Bug:修复了无配方物品因模组提高最大堆叠上限而导致阈值被夸大至荒谬值(观察到:9,999)的问题。
  • 搜索栏按键泄露:在图鉴中搜索时输入“E”(或其他绑定到原版按键的字母键)不再会在输入过程中关闭界面。
  • 全部存入按钮重叠以及某些版本上乱码的提示文本,均已解决。

通用修复:上述所有修复均已应用到全部 9 个目标加载器/版本组合。

版本 1.7.1 (识别子类型的研究)

发布日期: 2026 年 6 月 4 日

  • 修复子类型取回 Bug:修复了一个 Bug,该 Bug 导致存入药水、附魔书以及其他具有子属性的物品(例如山羊角、迷之炖菜)后,取回时会将其渲染为默认的“无法合成的药水”,或导致其失去视觉效果和 NBT 标签/组件。
  • 识别子类型的序列化:实现了混合键序列化,用以区分药水类型、附魔和基于元数据的子类型,同时保持工具、武器和盔甲在基础物品级别解锁。
  • 通用修复:已应用到全部 9 个目标加载器/版本组合。

版本 1.7.0 (整合包加固与并发处理)

发布日期: 2026 年 6 月

🛡️ 模组注册表与冲突加固

  • 健壮的错误隔离:在查询原料和输出注册表时实现了全面的防御性异常处理。任何在检索期间抛出异常的第三方配方类都会被安全捕获并设置默认值,从根本上防止客户端渲染界面崩溃。
  • 显著性能优化:将原先对每个已注册模组配方的线性扫描替换为懒加载的 O(1) 索引映射。这将阈值计算从缓慢的递归循环转变为瞬时查找,彻底消除了在大型整合包中打开旅程菜单时的帧率卡顿。

🧵 并发与持久化升级

  • 集中式数据安全:同步了玩家能力加载流程,以配合全局能力的保存操作。这强制了所有 JSON 配置文件读/写操作的互斥性,消除了服务器上多名玩家并发登录/登出时可能导致文件损坏的竞争条件。
  • 主线程安全:审计了客户端/服务器网络数据包,确保所有异步数据包处理都能正确排队并在主线程上处理。

版本 1.6.0N-1.12.2 (1.12.2 Forge 移植版与子类型进度)

发布日期: 2026 年 5 月 23 日

  • Forge 原生支持:将模组完整移植到 Minecraft 1.12.2,使用独立的 Forge (14.23.5.2860) 构建。
  • Java 8 编译目标:严格执行 Java 8 编译器目标以保证完全的旧版兼容性,使用 RetroFuturaGradle 编译流水线。
  • 基于元数据的子类型支持:设计了一个结合注册表名称和元数据(例如 mine