类型ItemVoidPickaxe的onItemRightClick方法必须覆盖或实现一个超类型方法
问题描述:
我试图让项目在右键单击时被损坏。唯一的问题是......好的,错误是这个问题的标题......而且快速修复是删除@Override注释,但它不会实际执行任何操作......以下是我的代码:类型ItemVoidPickaxe的onItemRightClick方法必须覆盖或实现一个超类型方法
package com.AFranklin78000.VoidMod.items;
import javax.xml.ws.Action;
import com.AFranklin78000.VoidMod.Refrence;
import com.AFranklin78000.VoidMod.VoidMod;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.item.ItemPickaxe;
import net.minecraft.item.ItemStack;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.Mod.EventHandler;
public class ItemVoidPickaxe extends ItemPickaxe {
public ItemVoidPickaxe(ToolMaterial material, String unlocalizedName) {
super(material);
this.setUnlocalizedName(unlocalizedName);
this.setRegistryName(new ResourceLocation(Refrence.MODID, unlocalizedName));
this.setCreativeTab(VoidMod.tabVoidMod);
}
@Override
public public ItemStack onItemRightClick(ItemStack itemstack, World worldIn, EntityPlayer playerIn, EnumHand handIn) {
if (true) {
if (playerIn instanceof EntityPlayerMP) {
MinecraftServer minecraftserver = FMLCommonHandler.instance().getMinecraftServerInstance();
if (minecraftserver != null)
minecraftserver.getCommandManager().executeCommand((EntityPlayerMP) playerIn, "gamerule sendCommandFeedback false");
minecraftserver.getCommandManager().executeCommand((EntityPlayerMP) playerIn, "particle portal ~ ~1 ~ 0 0 0 2.5 5000");
minecraftserver.getCommandManager().executeCommand((EntityPlayerMP) playerIn, "fill ~5 ~5 ~5 ~-5 ~ ~-5 air 0 destroy");
}
}
return onItemRightClick(itemstack, worldIn, playerIn, handIn);
}
}
这是Java代码。这是一个Gradle ...事情...
所以,如果你可以帮助,那将是惊人的!
记住,我不是在编码尚未很好...
答
好吧,事实证明,我需要使用:playerIn.getHeldItemMainhand().damageItem(1, playerIn);
相反的:itemstack.damageItem(1, playerIn);
答
好了,我没有什么做摇篮,但在阅读您的错误信息,不应该你的方法是这样的?
@Override
public ItemVoidPickaxe onItemRightClick(ItemStack itemstack, World worldIn, EntityPlayer playerIn, EnumHand handIn) {
super(...);
// the rest of the code
}
这似乎在某种程度上,你是混合起来的方法......
我不知道那!谢谢! – AFranklin78000
等等......你把什么放在'super(“Here”)里面;' – AFranklin78000
正如我告诉过你的,我对Gradle没有任何经验。我只知道如何在Java中编写代码并解释错误消息。我建议你看看ItemVoidPickaxe和ItemPickaxe类。某处你会找到构造函数。那么应该清楚你可以放什么。也许只要调用“super();”就足够了。试试吧。 – DiabolicWords