Why do I keep attracting poor-quality guys?

I keep attracting guys who are crazy, immature, controlling, player-types, not physically my type, etc...
I'm an undergraduate college student and I believe I have a lot to offer to someone. I'm really nice, educated, well-known in my community, mature for my age (even though I acknowledge that I have a lot to learn from life), respectful, caring, selfless, don't party or do drugs... Not trying to sound conceited, but if you're wondering, lots of people tell me how beautiful/hot I am. I don't know what it is because I try to expose myself to as many people as possible. Some of these guys I've met offline in the real world too.
Do I need to become the opposite of what I am in order to attract what I want? Is it just bad luck? If not, what can I do? Please tell me because I'm fed up.
Why do I keep attracting poor-quality guys?
Post Opinion