I have an item with NBT data that I want to be reset to 0 when the player releases the right mouse button, but I can't figure out why onPlayerStoppedUsing() isn't being called. I'm probably overlooking something simple, here's the code:
public void onPlayerStoppedUsing(ItemStack itemStack, World world, EntityPlayer player, int ticks)
{
System.out.println("working");
itemStack.stackTagCompound.setInteger("castTime", 0);
}
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player)
{
if(!world.isRemote)
{
ChunkCoordinates coords = player.getBedLocation(player.dimension);
if(coords != null)
{
if(itemStack.stackTagCompound.getInteger("cooldown") == 0)
{
player.setItemInUse(itemStack, getMaxItemUseDuration(itemStack));
if(itemStack.stackTagCompound.getInteger("castTime") >= maxCastTime)
{
player.setPositionAndUpdate(coords.posX + .5, coords.posY + 1, coords.posZ + .5);
itemStack.stackTagCompound.setInteger("cooldown", maxCooldown);
itemStack.stackTagCompound.setInteger("castTime", 0);
}
else
{
int timeCast = itemStack.stackTagCompound.getInteger("castTime") + 1;
itemStack.stackTagCompound.setInteger("castTime", timeCast);
}
}
return itemStack;
}
else
{
player.addChatMessage(new ChatComponentTranslation("msg.hearthstoneFailed.txt"));
return itemStack;
}
}
else
return itemStack;
}
public int getMaxItemUseDuration(ItemStack itemStack)
{
return 100;
}