What if there was a system put in place where you can rank players you encounter from 1-10. One being the worst player around, do not party or interact with and ten being a true saint in the game. A character can only rank a player if they've been in a party together for at least 15 minutes so you can't just get invites and spam 1's on everyone. Your final score would be an average of all your rankings and this can be visible when inspecting someone or next to their name. So if you have a high score you will be seen as a friendly and helpful person and if you have a low score you would be seen as an avoid at all cost type of player.
Now if you keep your score above a 7 every month you can win a prize of some sort that can have gear, mounts, pets, gold, honor, valor, transmog items, etc etc. Maybe even add things to your garrison? I don't know but I'm sure there could be a lot of things you could potentially get.
Now if your score at the end of the month is less than 4 you have negatives added to your account whether it be more expensive repairs, larger tax on auctions, lower rep gains, less valor and honor gains, maybe even a lower chance of getting items to drop in LFR/Flex raids. Something significant enough to warrant good behavior. Your score would also appear in trade chat and party/raid chat as well as guild chat next to your name if your score is a 4 or less so people will know if you're an ass or not.
The only tricky thing about this system is abusing it. Maybe have it so you can't gain ranks from guildies/real id friends so you can't just have everyone spam 10's on you. Maybe have it so you can only rank someone once every hour to day so you don't just spam a whole LFR with 1's. I'm sure there could be more or better ways to handle this stuff but I just can't think of it right now.
Now I know what you might be thinking "It wouldn't be fair if everyone see's your bad score, they'll just ridicule you", well then you shouldn't have been an ass to so many people.
Every month your score will default back to 5 and start all over so if only one person ranks you and you get a 1 it doesn't immediately put you to 1. Though there could be other ways around this as well.
Anyway, I just came up with this pretty quickly and I'm tired so this might be a completely broken idea but the community has been getting worse and worse and something needs to happen in all honesty.