Simplified message handling.
Change ping so it doesn't have a timeout and you can send more than 1.
Don't write a send/receive error over another disconnect message.
Delay starting the map until receiving a MOTD, this means you won't quickly connect and disconnect if the username is taken.