Minecraft Modding,hitEntity方法没有运行

时间:2014-08-14 02:54:31

标签: java override minecraft minecraft-forge

我对modding相当陌生 我想创造一把剑,让小怪或玩家着火。我正在使用hitEntity方法,我注意到该功能甚至没有运行。我用控制台测试了它。当我在@Override方法之前使用hitEntity表示法时,它会给我一个错误:

  

BlazeSword类型的方法hitEntity(ItemStack,EntityLiving,EntityLiving)必须覆盖或实现超类型方法

这是我的代码:

package com.example.firstMod.tools;

import com.example.firstMod.FirstMod;

import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;

public class BlazeSword extends ItemSword {

    public BlazeSword(int id, ToolMaterial blaze) {
        super(blaze);
        this.setCreativeTab(FirstMod.blazingMod);
        this.setUnlocalizedName("blazeSword");
        this.setTextureName(FirstMod.MODID+":"+"blaze_sword");
    }

    public boolean hitEntity(ItemStack par1itemstack, EntityLiving par2entityliving, EntityLiving par3entityliving){
        par2entityliving.setFire(20);
        return true;
    }    
}

2 个答案:

答案 0 :(得分:1)

如果您收到了@Override所说的错误,那么ItemSword中就没有这样的方法。查看正确命中方法的ItemSword类。

答案 1 :(得分:-1)

hitEntity方法不起作用,因为你从不调用它。您声明它存在但您从未运行它。您需要做的是使用您请求的变量在BlazeSword类中调用您的hitEntity方法。 在你的BlazeSword类中:

hitEntity(ItemStack par1itemstack, EntityLiving par2entityliving, EntityLiving par3entityliving)

另外,取出@Override,因为你并没有试图找到大火剑的等级。