@Override public EnumActionResult onItemUse(EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { double x = pos.getX() + 0.5 + facing.getFrontOffsetX(); double y = pos.getY() + 0.5 + facing.getFrontOffsetY(); double z = pos.getZ() + 0.5 + facing.getFrontOffsetZ(); if(!worldIn.isRemote) { EntitySlime slime = new EntitySlime(worldIn); NBTTagCompound data = ItemNBTHelper.getCompound(playerIn.getHeldItem(hand), TAG_ENTITY_DATA, true); if(data != null) slime.readFromNBT(data); else { slime.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(1.0); slime.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.3); slime.setHealth(slime.getMaxHealth()); } slime.setPosition(x, y, z); worldIn.spawnEntity(slime); playerIn.swingArm(hand); } playerIn.setHeldItem(hand, new ItemStack(Items.BUCKET)); return EnumActionResult.SUCCESS; }