-技术 -mod -java 我的世界fabric-1.21.1mod制作心得二——创造物品栏 ‘祈止’ 2025-04-19 2025-04-21 前言
如果您没有mod制作经验,那么在看本期前建议看一下上期心得。
上回我们成功注册了物品,成功在我的世界中添加了新物品。但是我们却没法从在创造模式物品栏中取出来,只能通过/give命令间接获得。本期我们将通过‘ fabricAPI ’,将物品添加到创造模式物品栏中。并注册我们自己的创造模式物品栏。
主要java代码 AModItems.java 让我们先尝试把物品添加到原版的创造模式物品栏,这需要借助fabric的API。
在上期我们创建的物品注册文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 private static void addItemGroup (FabricItemGroupEntries entries) { entries.add(物品常量名); } public static void registerItems () { ItemGroupEvents .modifyEntriesEvent(ItemGroups.NATURAL) .register(AModItems::addItemGroup); }
AModItemGroups.java 如果您需要创建新的创造模式物品栏,那么请创建AModItemGroups.java文件。
这里的物品栏创建建议和原版一样,虽然稍显繁琐。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 public static final RegistryKey<ItemGroup> A_GROUP = register("A_group" );private static RegistryKey<ItemGroup> register (String id) { return RegistryKey.of(RegistryKeys.ITEM_GROUP, new Identifier (AMod.MOD_ID, id)); } public static void registerGroups () { Registry.register( Registries.ITEM_GROUP, A_GROUP, ItemGroup.create(null , -1 ) .displayName(Text.translatable("itemGroup.celestial_group" )) .icon(() -> new ItemStack (AModItems.物品常量名)) .entries((displayContext, entries) -> { entries.add(AModItems.物品常量名); }).build()); }
AMod.java 我们的辅助注册方法需要调用,我们在模组文件里调用。
1 2 3 4 5 6 7 8 9 10 public void onInitialize () { AModItems.registerItems(); AModItemGroups.registerGroups(); LOGGER.info("Hello Fabric world!" ); }
配置json文件 语言文件 如果您不知道,可以看上期。
如:en_us.json
1 2 3 4 { "item.A-mod.物品id" : "译名" , "itemGroup.A_group" : "译名" , }
语言文件可以直接写在大括号里,和物品翻译在一起。
注意 以上就完成了物品栏注册的全过程。如果您出现物品栏注册失效,翻译失效。但代码没有问题,可以尝试重启IDEA。