为什么我的Block不会出现? Minecraft Forge 1.12.1

时间:2017-09-06 16:01:44

标签: java minecraft minecraft-forge

我已使用此代码注册了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。

1 个答案:

答案 0 :(得分:2)

如果您正在使用@Mod.EventBusSubscriber注册事件处理程序类,则处理程序方法(onRegistryRegisterBlockonRegistryRegisterItem)必须是静态的,否则它们将不是调用。