我已使用此代码注册了Block(或者至少我认为我做过):
@SubscribeEvent
public void onRegistryRegisterBlock(RegistryEvent.Register<Block> event) {
event.getRegistry().register(MyMainModClass.creepyFace01);
}
@SubscribeEvent
public void onRegistryRegisterItem(RegistryEvent.Register<Item> event) {
event.getRegistry().register(MyMainModClass.itemCreepyFace01);
}
我想要注册的Block的未本地化名称是“creepy_face_01”。这是我在main mod类中创建引用的方法:
public static Block creepyFace01 = new CreepyFace01();
public static ItemBlock itemCreepyFace01 = new ItemBlock(creepyFace01);
这是Block类:
String unlocalizedName = "creepy_face_01";
float hardness = 60f;
float resistance = 4000f;
public CreepyFace01() {
super(Material.ROCK);
this.setUnlocalizedName(unlocalizedName);
this.setRegistryName(MinecraftStoryMod.modID, this.unlocalizedName);
this.setHardness(hardness);
this.setResistance(resistance);
this.setHarvestLevel("axe", 3);
this.setCreativeTab(CreativeTabs.DECORATIONS);
}
是的,该课程扩展了Block。我认为我正确地注册了事件处理程序,因为我在代码中包含了@ Mod.EventBusSubscriber。我也在使用代理。我正在使用Minecraft Forge 1.12.1 14.22.0.2469。
答案 0 :(得分:2)
如果您正在使用@Mod.EventBusSubscriber
注册事件处理程序类,则处理程序方法(onRegistryRegisterBlock
和onRegistryRegisterItem
)必须是静态的,否则它们将不是调用。