Minecraft Eclipse错误:constrictor调用必须是构造函数中的第一个语句

时间:2013-06-03 08:13:00

标签: java eclipse minecraft

我遇到了super(i, Material.wood)行的问题。它说“constrictor call必须是构造函数中的第一个语句”。我不知道该做什么或它意味着什么,所以如果你有想法或者想要测试它并让我知道如何修复它我会非常感激它!

mod_new

package net.minecraft.src;

public class mod_new extends BaseMod {

    public static Object ruby;

    public mod_new(int i, Material rock) {
        super(i, rock);
        // TODO Auto-generated constructor stub
    }

    public static final Block newblock = (new Ruby(243, null).setHardness(3F).setResistance(4F).setLightValue(1-0F).setUnlocalizedName("newblock"));
    public static final int blockID = 0;

    public void load() {
        Ruby ruby = null;
        ModLoader.registerBlock(ruby);

        ModLoader.addName(ruby, "ruby");
        ModLoader.addRecipe(new ItemStack(ruby, 1), new Object [] {"#", Character.valueOf('#'), Block.dirt});
    }

    @Override
    public String getVersion() {
        // TODO Auto-generated method stub
        return null;
    }
}      

mod_Ruby

package net.minecraft.src;
import java.util.Random;

public class Ruby extends Block {

    protected Ruby(int par1, Material par2Material) {
        super(par1, par2Material);
        // TODO Auto-generated constructor stub
    }

    public static void ruby (int i) {
         super(i, Material.wood); // exception here
    }

    public int idDropped(int i, Random random, int j) {
        return mod_new.blockID;
    }

    public int quantityDropped(Random random) {
        return 1;
    }
}

如果您发现任何其他内容或需要了解某些内容,请与我们联系。我没有对其他Minecraft文件进行任何更改,例如item.javamodloder.java除外。

1 个答案:

答案 0 :(得分:0)

static关键字似乎有点不合适。

static方法无法调用super(...)构造函数;只有构造者可以。

在自动生成的构造函数存根之后,将您的签名更改为:

public Ruby(int i) {
    super(i, Material.wood);
}