We need to make banning and kicking a bit painful for the griefers. Here is my suggestion :
1) Make a GUID login in the game client, so that the gamer needs to enter his number ( let's make it a mix of alphanumeric! a meaningful name limits its available quantity and people try hard to get their own special name ).
i.e.: GUID: 287*&G"(&*82£@
2) To get the GUID, the client needs to register his nickname on a website (same server as GUID server, but different port maybe). The nickname will be used in the game. The player can't change this name in the game. It can be changed again on the website. And we'll have a lot of captcha images for registering/changing name. Maybe 4 or 5. This should slow repetitive griefers down.
Register form:
Nickname: Sleek
Email: .......@gmail.com
password: ******** ( for later change )
[captcha images here]
<returns a valid GUID, which is also entered in the database>
Login form:
Email: .......@gmail.com
password: ********
[captcha images here]
<allows player to change nickname>
3) GUID server holds a database of GUID and servers registered there. Yes server that wants to use this server needs to be registered as well. Of course, it's optional for them ( in case they just don't care ). Actually server database contains the banned GUID list.
GUID db:
GUID Name
=========================
287*&G"(&*82£@ Sleek
server db:
Server Banned GUID Kickvoter Reason Period
==============================================
<serverID here> /Ss7+_"(&*c24% 287*&G"(&*82£@ deconning 4 hours
3k!ad''a**m3qlp 287*&G"(&*82£@ TK 8 hours
(just an example, there could be more columns in this db)
3) When the player needs to enter a game (server), the client dials back to the GUID server and check if his number is banned on that game server. If it's, he is kicked back, else he's in.
4) Now we need to repair the voting system for kicking and banning. We need a 'reason' part to it. This will be sent to the GUID server along with the person who started the vote, and the person kicked, if the kick/ban succeeded. This way, if any misvoting occured and the kicked person reports, there's evidence which we can see who's in the wrong.
5) Of course the GUID server address should be changeable by the user, so we can have several GUID server (if users wanted to have their own, which could be clan based (stricter ?) or n00b based (leanient, however you spell it

). But users from GUID server A shouldn't be able to access
game servers listed in GUID server B.
The only way to eliminate people taking advantage of the system is to slow them enough while we repair the damage they have done. There is no 100% solution that can stop them dead. But we can slow them down to almost a halt.

That's my idea. It's a bit complicated, thanks to these griefers. If people would play fair everytime things would have been much easier. Some might argue that using db will slow things down. This shouldn't be the case if the db access is kept to minimum, i.e. not a lot of kick/banning is done.
Now you die griefers :evil: .
I hope you like my first post.