private void HandlePlayerConnection(Socket socket, ProtocolReceive protocolReceive, ProtocolSend protocolSend) { LoginInfo playerLogin = protocolReceive.HandlePlayerLogin(socket); GameWorld localWorld = world; #if DEBUG // TODO: Write message here ("Logging in (name/password-hash)...") #endif // TODO: Kick current player and let this one log in if (localWorld.IsPlayerOnline(playerLogin.GetUsername())) { protocolSend.Reset(); protocolSend.AddSorryBox("A player with this name is already online."); protocolSend.MarkSocketAsClosed(); protocolSend.WriteToSocket(); #if DEBUG // TODO: Write message here ("Player is already online") #endif return; } Player player = new Player(protocolSend); if (!player.LoadPlayer(playerLogin)) { protocolSend.Reset(); protocolSend.AddSorryBox("A player with this name is already online."); protocolSend.MarkSocketAsClosed(); protocolSend.WriteToSocket(); #if DEBUG // TODO: Write message here ("Invalid username or password.") #endif return; } localWorld.SendAddPlayer(player, player.CurrentPosition); protocolReceive.StartReceiving(world, player); #if DEBUG // TODO: Write message here ("Logged in (name)") #endif // TODO?: Threading //new PlayerThread(player, localWorld, protoReceive).StartThread(); }