Minecraft forge Minecraft模块构建器错误
我正在做一个mod,我得到了一个错误(没有duh),我试着搜索它,但我想要一个具体的答案,我的问题,因为我不是很擅长这个。我在block类中遇到此错误 默认构造函数的隐式超级构造函数块()未定义。必须定义显式构造函数 我也不知道如何修复它。请帮助它完成一个项目 块类:Minecraft forge Minecraft模块构建器错误,minecraft-forge,Minecraft Forge,我正在做一个mod,我得到了一个错误(没有duh),我试着搜索它,但我想要一个具体的答案,我的问题,因为我不是很擅长这个。我在block类中遇到此错误 默认构造函数的隐式超级构造函数块()未定义。必须定义显式构造函数 我也不知道如何修复它。请帮助它完成一个项目 块类: package GDMCrocknrollkid.fandomcraft; import net.minecraft.block.Block; import net.minecraft.block.material.Materi
package GDMCrocknrollkid.fandomcraft;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
public class BlockCbBlock extends Block {
protected BlockCbBlock(Material material) {
super(material);
}
}
mod等级:
package GDMCrocknrollkid.fandomcraft;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
@Mod(modid = "fc", name = "Fandomcraft", version = "1.0")
public class fandomcraft {
public static Item itemCbIngot;
public static Block blockCbBlock;
@EventHandler
public void preInit(FMLPreInitializationEvent event){
//Item/Block initialization and registering
//Config Handling
itemCbIngot = new ItemCbIngot().setUnlocalizedName("ItemCbIngot").setTextureName("fc:itemCbIngot"); //item.itemCbIngot.name
blockCbBlock = new BlockCbBlock(Material.iron);
GameRegistry.registerItem(itemCbIngot, itemCbIngot.getUnlocalizedName().substring(5));
}
@EventHandler
public void init(FMLInitializationEvent event){
//Proxy, TileEntity, entity, GUI and Packet Registering
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
}
}
此错误适用于所有java,而不仅仅是minecraft forge。查看更多参考资料。这个错误可能有几个原因。很可能是1,但2和3可能是导致错误的因素
Block
类正在使用默认构造函数,则不能调用super()
,因为块
类使用了不带参数的构造函数。因此,如果您想要修改块
构造函数,那么在BlockCbBlock
类本身内部创建自定义构造函数将更安全、更容易块
的构造函数,但已将其声明为受保护,此时类中的构造函数应为公共
,以匹配继承的构造函数@EventHandler
,但实际上尚未声明forge事件处理程序uncalizedName
,材质
,以及CreativeTab
。这种方法可能是不必要的,但它是一种很好的预防措施,有助于防止错误。现在,您所要做的就是这样声明:
//You need to make your own EventHandler class. Search online for that.
FCEventHandler handler = new FCEventHandler();
@EventHandler
public void preInit(FMLPreInitializationEvent event){
//Config Handling
//event handler registry
FMLCommonHandler.instance().bus().register(handler);
MinecraftForge.EVENT_BUS.register(handler);
//the same thing can be similarly done with this if you wish
itemCbIngot = new ItemCbIngot().setUnlocalizedName("ItemCbIngot").setTextureName("fc:itemCbIngot");
blockCbBlock = new BlockCbBlock();
GameRegistry.registerItem(itemCbIngot, itemCbIngot.getUnlocalizedName().substring(5));
}
此错误适用于所有java,而不仅仅是minecraft forge。查看更多参考资料。这个错误可能有几个原因。很可能是1,但2和3可能是导致错误的因素
Block
类正在使用默认构造函数,则不能调用super()
,因为块
类使用了不带参数的构造函数。因此,如果您想要修改块
构造函数,那么在BlockCbBlock
类本身内部创建自定义构造函数将更安全、更容易块
的构造函数,但已将其声明为受保护,此时类中的构造函数应为公共
,以匹配继承的构造函数@EventHandler
,但实际上尚未声明forge事件处理程序uncalizedName
,材质
,以及CreativeTab
。这种方法可能是不必要的,但它是一种很好的预防措施,有助于防止错误。现在,您所要做的就是这样声明:
//You need to make your own EventHandler class. Search online for that.
FCEventHandler handler = new FCEventHandler();
@EventHandler
public void preInit(FMLPreInitializationEvent event){
//Config Handling
//event handler registry
FMLCommonHandler.instance().bus().register(handler);
MinecraftForge.EVENT_BUS.register(handler);
//the same thing can be similarly done with this if you wish
itemCbIngot = new ItemCbIngot().setUnlocalizedName("ItemCbIngot").setTextureName("fc:itemCbIngot");
blockCbBlock = new BlockCbBlock();
GameRegistry.registerItem(itemCbIngot, itemCbIngot.getUnlocalizedName().substring(5));
}
#4不适用。@EventHandler注释是Forge的一部分<代码>导入cpw.mods.fml.common.Mod.EventHandler并表示Forge Mod Lifecycle事件,这些事件是
FMLPreInitializationEvent
、fmlinitizationEvent
和FMLPostInitializationEvent
,在任何用@Mod#4注释的类上搜索不适用。@EventHandler注释是Forge的一部分import cpw.mods.fml.common.Mod.EventHandler
并表示Forge Mod生命周期事件,这些事件是FMLPreInitializationEvent
、fmlinitalizationEvent
和FMLPostInitializationEvent
,并在任何用@Mod注释的类上搜索