My boyfriend treats me poorly but then blames me for complaining. I love him but what do I do?

I have been with my boyfriend for three and a half years. During this three and a half years he has rarely taken me out, not included me with his friends much, emotionally cheated by flirting on his phone/Facebook, ditched me on weekends because he was hungover from the night before or to club with his friends, and called me rude names like "crazy psychotic b *tch when fighting " and then he seems not to really have cared about doing these things although I tell him it HURTS me. It sounds bad but we also have amazingly good times and I care about him lots. I always take care of him when he's sick, took him to Vegas, back rub him to sleep when I stay over, supported him when he moved away for a bit and took the bus 100$ each way to see him on the weekends, make his birthday special each year, and treat his family like my own. Although it may seem it I'm not a stupid girl or ugly either, I'm educated and have guys compliment me. Our relationship has gone downhill since October we fight constantly because he just seems to have stopped caring. Before when he'd do things I'd always forgive him because he'd apologize and claim how much he loves me. Now we won't talk for a week after he's been hurtful and he'll act like he's done nothing wrong. This past weekend I got upset because he wanted to nap and lounge around by himself instead of seeing me and I knew I would not seem him for three weeks had we not seen each other. In his eyes me being upset about not seeing him and expressing that to him is "complaining" and therefore he did not do anything for me for valentines day because I was complaining and he claims "I know I let you down v-day but that's all I do now because that's all you tell me and expect me to do" but my boyfriend has never done anything other than really let me down, at first it was no big deal and thought with time it'd get better. 3.5 years in I guess I complain about it because I thought he would start acting like he cared more. Today after a week of not talking he texted me saying I was his best friend and he loves me lots and he really misses me and would be sad if we broke up to lose his best friend and that work stresses him out and that he takes it out on me I asked him why he didn't care when I tell him things hurt me and he said "its because you complain about me almost everyday". I complain because he doesn't want to spend time with me or doesn't treat me like I think a girlfriend should be treated. And then he says he doesn't care because I complain. He does not even try to prove me wrong by doing something nice..Just lets me slip through his fingers. The easy answer is to leave this guy but he claims he loves me which makes it hard for me because he says it but does not show it. I love him very much and want to make it work. If you think there's no hope then say it but if you think there's something I can do or we can do to fix this I'd like to hear it. Appreciate it so much! Thanks
My boyfriend treats me poorly but then blames me for complaining. I love him but what do I do?
Add Opinion