refactored:
you don't need to create the same string three times, you can just create one string and make copies of it (actually copies of the reference to that string)
termination usage for stopping the socket connection gracefully
send ERR_SASLFAIL reply for auth fails
IRC: Receive messages Nick, User and Cap End in any order