2013-06-03 33 views
2

我遇到super(i, Material.wood)行的问题。它表示:“缩尺必须是施工人员的拳头声明”。我不知道该做什么或意味着什么,所以如果你有一个想法或想要测试它,让我知道如何解决它,我会非常感激!Minecraft Eclipse错误:缩小器调用必须是构造函数中的第一条语句

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.java,但modloder.java除外。

+1

这不是一个构造函数。例如,'public Ruby(int i){...}'是一个构造函数。 – Vlad

回答

0

static关键字似乎有点关闭。

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

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

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

好吧我解决了这个问题,非常感谢DerMike,现在它只是说“ModLoader 1.5.2初始化... 无法从”mod_new.class“加载mod 完成。有任何想法吗? - 谢谢 – user2447032

+0

不,对不起。这对我来说并不java'ish,我不知道Minecraft改装。也许问另一个问题。 (并且请将我的答案标记为“Accepted”:-)) – DerMike

+0

给出的错误是什么? –

相关问题