Fabric模组重复注册物品ID导致客户端启动崩溃求助
问题触发原因
- 核心错误为物品注册ID重复:你的
onInitialize方法中存在笔误,注册DIAMOND_BASE时复用了已分配给GOLD_BASE的IDcauldrons:gold-base,注册NETHERITE_BASE时复用了已分配给IRON_BASE的IDcauldrons:iron-base。 - Minecraft物品注册表要求每个物品的Identifier(命名空间+路径)全局唯一,重复为同一个ID绑定不同的物品实例时,就会触发本次的ID冲突崩溃。
修复方案
你当前的需求是新增4个不同的基底物品,只需要修正后两个注册语句的ID即可,修复后的onInitialize方法代码如下:
@Override public void onInitialize() { Registry.register(Registry.ITEM, new Identifier("cauldrons", "gold-base"), GOLD_BASE); Registry.register(Registry.ITEM, new Identifier("cauldrons", "iron-base"), IRON_BASE); // 修正注册ID,分别对应钻石基底和下界合金基底 Registry.register(Registry.ITEM, new Identifier("cauldrons", "diamond-base"), DIAMOND_BASE); Registry.register(Registry.ITEM, new Identifier("cauldrons", "netherite-base"), NETHERITE_BASE); }
注:报错中提到的.set()方法仅适用于需要覆盖已有注册项的场景,你当前的新增物品场景不需要使用该方法。
内容的提问来源于stack exchange,提问作者kineticcat_
相关产品推荐
相关产品推荐

