Hey man,

You're a dealer who has a "friend" who only comes around to get free weed and hang out with you over weed. Thats not a friend, thats a customer. A non-paying customer at that.

First and foremost, forget about thinking of this guy as a friend. He's gotten enough freebies already. Let him know in no uncertain terms that free time is over and if wants to smoke, he needs to pay. Then you can smoke with each other. Don't smoke with him unless its his weed. You'll see how quickly that "friend" disappears.

Second, this guy is using you big time. That needs to stop immediately. Once that stops, find some new friends or go back to some old friends, as in friends you had before this douche. Real friends give back at least once in awhile. Users just take, take and take.

Good luck man.