首发于Enaium的个人博客
注册物品
首先在ExampleMod
类中声明Item
对象。
接着在onInitialize
方法中注册物品。
import net.fabricmc.api.ModInitializer;
+import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
+import net.minecraft.item.Item;
+import net.minecraft.registry.Registries;
+import net.minecraft.registry.Registry;
+import net.minecraft.util.Identifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ExampleMod implements ModInitializer {
public static final Logger LOGGER = LoggerFactory.getLogger("awesome");
+ public static final Item END_HEART = new Item(new FabricItemSettings());
+
@Override
public void onInitialize() {
- LOGGER.info("Hello Fabric world!");
+ Registry.register(Registries.ITEM, new Identifier("awesome", "end_heart"), END_HEART);
}
}
其中Registry.register
方法的第一个参数是注册的类型,第二个参数是注册的ID(格式为modid:itemid
),第三个参数是注册的对象。
进入游戏后使用命令将这个物品添加到背包中
give Player590 awesome:end_heart
[外链图片转存中…(img-Ct4ClbKn-1705490530196)]
我们可以直接调用Registry.register
方法来注册物品。
public class ExampleMod implements ModInitializer {
public static final Logger LOGGER = LoggerFactory.getLogger("awesome");
- public static final Item END_HEART = new Item(new FabricItemSettings());
+ public static final Item END_HEART =
+ Registry.register(Registries.ITEM, new Identifier("awesome", "end_heart&#