I'm trying to make an item that, when right clicking, destroys obsidian instantly. This is the code in the item class I made (not all of it):
//@Override < I read somewhere that I needed to override, but adding that gives me another error
public boolean onItemUse(ItemStack itemStack, EntityPlayer entityPlayer, World world, int x, int y, int z) {
System.out.println("Something happened!");
if(!world.isRemote) {
if (world.getBlockId(x, y, z) == Block.obsidian.blockID) {
itemStack.damageItem(1, entityPlayer);
world.destroyBlock(x, y, z, true);
}
}
return true;
}
The problem is that nothing is happening when I right click on anything. Nothing gets printed out. What am I doing wrong? Do I have to use onGameTick or sometihng?
Edit: Apparently this seems to do the job:
public boolean onItemUseFirst(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
int blockId = world.getBlockId(x, y, z);
if (blockId == Block.obsidian.blockID) {
itemStack.damageItem(1, player);
world.destroyBlock(x, y, z, true);
return !world.isRemote;
}
return false;
}