欢迎光临散文网 会员登陆 & 注册

关于minecraft1.20及以上版本fabricMod可能遇到的问题

2023-06-27 20:34 作者:平平常常顺其自然  | 我要投稿

我在评论区看到一个评论表示ItemGroupEvents.modifyEntriesEvent方法的参数报错,原本想直接回复的,结果我发了两次解答,B站全给我吞了,搞不懂B站的屏蔽词,无奈发一个专栏。

就是这个问题


实际上是因为minecraft1.20的代码更新了,1.19版本的modifyEntriesEvent方法需要的ItemGroup对象,1.20需要一个RegistryKey<ItemGroup>对象,所以很简单,我们新建一个RegistryKey<ItemGroup>对象就好了。


以下是我的ModItemGroup类的代码,仅供参考,写法可能与BV1Vj411S71d的略有不同


public class ModItemGroup{
   public static final RegistryKey<ItemGroup> ITEM_GROUP = RegistryKey.of(RegistryKeys.ITEM_GROUP, new Identifier(ModEntryMain.MOD_ID, "example"));//前面填自己mod名字,后面的参数随便写,不影响
   public static void registerModGroup(){
       ModEntryMain.LOGGER.info("注册物品组");

       Registry.register(Registries.ITEM_GROUP, ITEM_GROUP,
               FabricItemGroup.builder().displayName(Text.translatable("测试mod"))//组名
                       .icon(()->new ItemStack(ModItem.CITRINE))//设置组的图标
                       .build());
   }

}

对应的,我们把方法的传递参数也改为RegistryKey<ItemGroup>,比如

registerBlockItem(String name, Block block, ItemGroup group)

==============》

registerBlockItem(String name, Block block, RegistryKey<ItemGroup> group),


最后在onInitialize()方法里调用ModItemGroup.registerModGroup()方法就可以了


如果有什么遗漏或错误的地方,请评论告诉我




关于minecraft1.20及以上版本fabricMod可能遇到的问题的评论 (共 条)

分享到微博请遵守国家法律