Productive Bees EMI 修复

Productive Bees EMI 修复

为Productive Bees添加缺失的EMI配方类别,并修复悄悄破坏蜜蜂繁殖的蜜蜂缓存bug。

Productive Bees EMI 修复

Productive Bees 仅提供了 JEI 集成。在使用 EMI 作为配方查看器的整合包中,其蜜蜂信息完全无法查看:没有蜂箱产出,没有离心机,没有繁殖,没有巢穴生成。蜜蜂甚至不会作为材料显示出来。

本模组为 EMI 添加了该集成,并修复了 Productive Bees 中一个无论是否使用配方查看器都会破坏蜜蜂繁殖的 bug。


它为 EMI 添加的内容

基于 Productive Bees 自身的配方构建的五个类别:

  • 蜂箱产出 —— 每只蜜蜂在高级蜂箱中产出什么
  • 离心机 —— 蜂巢脾转化为资源,包含动力离心机
  • 蜜蜂繁殖 —— 哪两只蜜蜂繁殖出哪只
  • 蜜蜂转化 —— 给蜜蜂喂食某物品以将其转化
  • 巢穴生成 —— 哪个巢穴生成哪只蜜蜂,以及在哪些生物群系

蜜蜂以实际的蜜蜂形态渲染,而非刷怪蛋图标,且每只蜜蜂都是独立的材料:点击某只蜜蜂会显示它的配方,而不是所有蜜蜂的配方。蜂巢脾也是如此,Productive Bees 同样将其存储为单个物品并通过 NBT 区分。

它修复的 bug

Productive Bees 通过遍历实体注册表并检查 minecraft:beehive_inhabitors 标签来构建其内部蜜蜂列表。这发生在配方反序列化期间,而配方反序列化运行在实体标签绑定之前,因此标签查找会抛出异常。该异常被吞掉,所有硬编码的蜜蜂都被丢弃,缓存也不会重建,因为它已不再为空。

可见的结果是:父本为硬编码蜜蜂的繁殖配方永远无法匹配,并且 Productive Bees 会记录 Bee not found in breeding recipe。煤炭(岩浆蜂 x 切叶蜂)和铁(水晶蜂 x 灰烬采矿蜂)是人们通常会注意到的。在 JEI 上,它还会导致整个 Productive Bees 插件崩溃,因为其繁殖类别图标硬编码为采石蜂。

本模组在实体标签实际绑定后修复该缓存。

安装

将同一个 jar 放在两个位置:

端 在该端的作用
客户端 EMI 类别 —— 每个玩家都需要它才能看到这些类别
服务端 繁殖修复 —— 安装一次,对所有人生效

单人游戏只需一次安装即可覆盖两者。本模组不进行任何同步,因此没有安装它的玩家仍然可以加入安装了它的服务器;他们只是看不到 EMI 类别。

前置要求

  • Minecraft 1.20.1,Forge 47+
  • Productive Bees
  • EMI(可选,但没有它时仅应用繁殖修复)

许可证

MIT。使用它、fork 它、将其打包进整合包,无需询问。

与 Productive Bees 或 EMI 无隶属关系。