快速配方制作

快速配方制作

一个模组,让你在书中双击或按住配方即可立即制作——按住Shift可填充最大材料用量。

快速配方合成

一个适用于 Minecraft 的轻量级客户端模组,可通过配方手册加速合成。

功能简介

通常,配方手册只能将配方的材料放入合成网格——你仍需自己取走成品。本模组移除了这一额外步骤:

  • 第一次点击配方手册中的物品——将配方放入合成网格,与往常一样。
  • 第二次点击同一物品——立即合成(等效于强制点击输出槽),然后自动重新放置相同配方,让你无需额外点击即可持续合成。
  • 按住左键 超过约 0.5 秒——开始以客户端时钟允许的最大速度自动重复合成,直到松开按钮或材料耗尽。
  • 按住 Shift 键 同时放置配方——一次将最大可用数量的材料放入网格,而不是每次只放一组。

工作原理

该模组使用 Mixin 注入 RecipeBookComponent(客户端配方手册类):

  • 它拦截 tryPlaceRecipe——如果点击的配方已放置在网格中(lastPlacedRecipe)且可合成,模组不会再次放置,而是调用带有 ContainerInput.QUICK_MOVE 的 MultiPlayerGameMode#handleContainerInput 作用于输出槽(索引 0),等效于玩家强制点击成品。
  • tick() 通过 GLFW(经由 Window 及其私有 handle 字段的访问器 Mixin)轮询鼠标左键和 Shift 键的物理状态,以实现按住按钮和“全部放置”修饰键的功能。

该模组仅限客户端使用,服务器端无需任何要求——每次操作都通过游戏正常的数据包(handleContainerInput、handlePlaceRecipe)进行,因此从服务器/反作弊的角度来看,与玩家正常点击无法区分。

已知限制

  • 按住时自动合成的速度受限于客户端时钟速率(20 tps)以及服务器处理数据包的速度。
  • 该模组仅适用于标准的合成菜单(合成台)。其他模组具有不同槽位布局的自定义 RecipeBookMenu 实现可能需要额外处理。