配方书访问API

配方书访问API

一个简便的Fabric API,支持从可自定义的外部库存中进行配方书制作。

配方书访问横幅

配方书访问是一个简单的 Fabric API,旨在为任何合成界面直观地添加外部库存访问支持。 它会重定向配方书功能,从一份可自定义的库存列表中检查和填充物品,而不是仅限玩家自己的库存。

这意味着什么?

自己看看吧! 配方书访问演示 这个模组合成台的示例通过此 API 使用自定义的库存列表,在这个具体案例中,它使用了附近箱子中的所有库存。

如果您正在寻找一个为合成台实现此功能的模组,您可能想要 附近合成 模组。

快速入门指南

有关更详细的使用指南,包括如何在您的项目环境中设置此 API,请参阅此项目在 Github 上的 readme,点击此处

此 API 提供了一个简单的接口,名为 RecipeBookInventoryProvider,位于 com.jomlom.recipebookaccess.api 中。

必须将此接口实现到您的界面处理器类中,只需覆写一个方法(getInventoriesForAutofill())即可获得 API 的完整功能。

您必须实现此方法,返回一份您希望配方书访问并用于合成的库存列表,默认情况下这不包括玩家的库存。

代码示例:

import com.jomlom.recipebookaccess.api.RecipeBookInventoryProvider

public class YourCraftingScreenHandler extends AbstractRecipeScreenHandler implements RecipeBookInventoryProvider {
    // 您现有的代码...

    @Override
    public List<Inventory> getInventoriesForAutofill() {
        return yourInventoriesList;
    }
}

此 API 所做的假设:

  • 您的界面处理器类继承自 AbstractRecipeScreenHandler,或其任何子类
  • 您对应的界面继承自 RecipeBookScreen,以便利用 Minecraft 的配方书

我尚未在这些假设之外进行测试

常见问题解答

常见问题解答

  • :我觉得我遇到了一个问题。
    :欢迎在 Github 上创建 issue,或直接通过电子邮件 contact@jontyali.com 联系我。

  • :你会发布对 x 的支持吗?
    :同样,欢迎提出对特定版本或其他模组的支持请求。我计划很快探索对 NeoForge 的支持。

  • :我的 getInventoriesForAutofill() 实现需要从客户端运行吗?
           :不需要!getInventoriesForAutofill() 仅在服务端界面处理器中使用,API 会自动让客户端保持对结果的更新!