可升级间隙

可升级间隙

将金苹果和一叠金锭升级为附魔金苹果。

Upgradable Gaps

用 64 个金锭将金苹果升级为附魔金苹果。这个模组中的一切都是服务端运行的:除了极旧的 Forge 版本外(参见安装),玩家无需安装任何额外内容,而且它在单人世界中也同样有效。

服务端 Minecraft Jar
Fabric、Quilt 1.14 - 26.3 +fabric-mc<versions>
Ornithe(旧版本上的 Fabric Loader) 1.3.1 - 1.13.2 +ornithe-mc<versions>
Forge 1.3.2 - 26.3 +forge-mc<versions>
NeoForge 1.20.2 - 26.3 +neoforge-mc<versions>
Bukkit、Spigot、Paper、Purpur、Folia 1.7.10 - 26.3 +bukkit(所有版本共用一个 jar)

Forge 的支持范围跳过了 Forge 本身从未发布的 Minecraft 版本(1.16、1.17、1.20.5、1.21.2 等)。

配方

在合成台中,将 8 个金锭分别放入 8 个外围格子的每一个中,中央放一个金苹果。即总共 64 个金锭加上金苹果本身的 8 个:与旧版 notch 苹果配方一样,相当于 72 个金锭的金。

为什么这需要一个模组而不是数据包

原版合成无法表达“一个格子中放一组物品”。配方 JSON 中的 Ingredient 没有数量字段,而结果槽会从每个已填充的格子中恰好移除一个物品。一个要求金苹果周围放金锭的数据包配方只会消耗 8 个金锭,而不是 64 个,并且没有任何 JSON 开关可以改变这一点。

因此每个构建都做同样两件事:当网格匹配时,它把附魔苹果放入结果槽并发送给玩家;当玩家取走它时,它从每个外围格子中移除 8 个金锭而不是 1 个。它如何挂接取决于平台:

  • Mixin(Fabric、Quilt、NeoForge、Forge 1.15.2+、Ornithe):一个 mixin 作用于合成菜单的网格更新,另一个作用于结果槽。
  • JS coremods(Forge 1.13.2 - 1.15.1,没有 Mixin):同样的两个挂接点,通过 Forge 自己的 coremod 系统注入。
  • 注册配方加合成事件(Forge 1.3.2 - 1.12.2):在 1.13 之前,服务端从不将其配方发送给客户端,所以那里使用真正的配方是安全的。
  • 物品栏事件(插件):它取消结果槽上的点击并自行完成合成。

在 1.13 及更新版本上,它不会向任何注册表注册任何内容,也不会添加任何配方序列化器。这正是原版客户端能够加入的原因:自 1.13 起,服务端会在登录时向每个客户端发送所有配方,而原版客户端无法解码它没有的配方类型。

安装

将适合你的服务端和 Minecraft 版本的 jar 放入 mods/(插件则放入 plugins/)并重启。Jar 命名为 upgradable-gaps-<version>+<platform>-mc<versions>.jar。

  • Fabric / Quilt: 任意 Fabric Loader 0.14+,或 Quilt Loader。不需要 Fabric API。
  • Ornithe: 先使用 Ornithe 安装器安装 Fabric Loader;这些 jar 无法在 Legacy Fabric 上运行。
  • Forge 1.15.2 需要 Forge 31.2.44 或更新版本(首个带 Mixin 的版本)。
  • Forge 1.3.2 - 1.7.10: 这么旧的 Forge 服务端会拒绝原版客户端,所以玩家需要安装 Forge。他们不需要这个模组。
  • Forge 1.3.2 - 1.5.2 每个 Minecraft 版本有一个 jar:那么旧的 Forge 通过混淆名称加载模组,而这些名称每次发布都会变化。
  • Forge 1.7.2 只能在 Java 7 上启动;这一个 jar 同时覆盖 1.7.2 和 1.7.10。
  • NeoForge: 适合你的 Minecraft 版本的任意构建。
  • 插件: 一个 jar 适用于从 1.7.10 起的所有基于 Bukkit 的服务端,包括 Folia。

值得了解的事项

  • 配方书。 该配方不会出现在其中,这是原版的硬性限制:配方书每个格子渲染一个物品且没有数量,其点击填充也是每个格子放置一个物品。一个条目会用 8 个金锭填满网格然后无法合成,这比没有条目更糟。手动摆放是可以正常工作的——你需要告知玩家这一点。
  • 原版金苹果配方未被改动。 没有任何东西覆盖、移除或编辑它,而且这个配方不会与它冲突:它的中心是金苹果,而不是苹果。
  • 批量合成有效。 在中央堆放金苹果,并在每个外围格子中为每个苹果放 8 个金锭,然后 shift 点击结果即可一次合成多个。
  • 合成器。 该配方在合成器方块中不起作用。合成器每个格子恰好消耗一个物品,并通过配方管理器解析配方,而后者对这种模式一无所知。这是有意为之——如果允许它通过,合成器就能用 8 个金锭加一个金苹果制造 notch 苹果。其他自动合成模组也会出于同样的原因表现相同。
  • doLimitedCrafting。 该配方忽略此游戏规则并保持可合成,因为没有配方条目可供玩家解锁。
  • 原版客户端在合成时会看到输入槽一帧的闪烁:它们的本地预测假定每个格子一个金锭,而服务端的纠正会晚一个刻到达。仅为视觉效果——服务端才是权威。

调整数量

INGOTS_PER_SLOT 是每个源码树中的常量(modern/src/common 中的 Upgrade,以及 ornithe/、forge-legacy/ 和 bukkit/ 中的对应项)。匹配和消耗都读取它,因此它们保持同步。在所有地方修改它并重新构建。

许可证

Copyright (c) 2026 Tyler Fursman。根据 Mozilla Public License 2.0 授权。