I am making a mod that adds a new fishing rod for catching other fish like swordfish or shark in 1.12.2. I finish making the class for the rod and there is an error. The error says, "Implicit super constructor ItemBase() is undefined. Must explicitly invoke another constructor." I'm fairly new to modding so I don't know what to do. The code is below. Someone help. The error is on this line:
public DeepSeaRod(String name) {
package com.tabulate.aquaticfoods.objects.items;
import com.tabulate.aquaticfoods.Main;
import com.tabulate.aquaticfoods.init.ItemInit;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityFishHook;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.IItemPropertyGetter;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatList;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundCategory;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class DeepSeaRod extends ItemBase{
public DeepSeaRod(String name) {
setUnlocalizedName(name);
setRegistryName(name);
setCreativeTab(Main.aquaticfoodstab);
setMaxDamage(400);
setMaxStackSize(1);
this.addPropertyOverride(new ResourceLocation("cast"), new IItemPropertyGetter(){
@SideOnly(Side.CLIENT)
public float apply(ItemStack stack, World world, EntityLivingBase entityIn) {
if(entityIn == null) {
return 0.0f;
}
else {
boolean flag = entityIn.getHeldItemMainhand() == stack;
boolean flag1 = entityIn.getHeldItemOffhand() == stack;
if(entityIn.getHeldItemMainhand().getItem() instanceof DeepSeaRod) {
flag1 = false;
}
return(flag || flag1)&& entityIn instanceof EntityPlayer && ((EntityPlayer)entityIn).fishEntity != null ? 1.0f : 0.0f;
}
}
});
ItemInit.ITEMS.add(this);
}
@SideOnly(Side.CLIENT)
public boolean isFull3D() {
return true;
}
@SideOnly(Side.CLIENT)
public boolean shouldRotateAroundWhenRendering() {
return true;
}
@Override
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn){
ItemStack itemStack = playerIn.getHeldItem(handIn);
if(playerIn.fishEntity != null) {
int i = playerIn.fishEntity.handleHookRetraction();
itemStack.damageItem(1, playerIn);
playerIn.swingArm(handIn);
worldIn.playSound((EntityPlayer)null, playerIn.posX, playerIn.posY, playerIn.posZ, SoundEvents.ENTITY_BOBBER_RETRIEVE, SoundCategory.NEUTRAL, 1.0f, 0.4f / (itemRand.nextFloat() * 0.4f + 0.8f));
}
else {
worldIn.playSound((EntityPlayer)null, playerIn.posX, playerIn.posY, playerIn.posZ, SoundEvents.ENTITY_BOBBER_THROW, SoundCategory.NEUTRAL, 0.5f, 0.4f / (itemRand.nextFloat() * 0.4f + 0.8f));
if(!worldIn.isRemote) {
EntityFishHook entityFishHook = new EntityFishHook(worldIn, playerIn);
int j = EnchantmentHelper.getFishingSpeedBonus(itemStack);
if(j > 0) {
entityFishHook.setLureSpeed(j);
}
int k = EnchantmentHelper.getFishingLuckBonus(itemStack);
if(k > 0) {
entityFishHook.setLuck(k);
}
worldIn.spawnEntity(entityFishHook);
}
playerIn.swingArm(handIn);
playerIn.addStat(StatList.getObjectUseStats(this));
}
return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemStack);
}
@Override
public int getItemEnchantability() {
return 15;
}
}