我对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;
}
}
答案 0 :(得分:1)
如果您收到了@Override所说的错误,那么ItemSword中就没有这样的方法。查看正确命中方法的ItemSword类。
答案 1 :(得分:-1)
hitEntity方法不起作用,因为你从不调用它。您声明它存在但您从未运行它。您需要做的是使用您请求的变量在BlazeSword类中调用您的hitEntity方法。 在你的BlazeSword类中:
hitEntity(ItemStack par1itemstack, EntityLiving par2entityliving, EntityLiving par3entityliving)
另外,取出@Override,因为你并没有试图找到大火剑的等级。