private void BtnLogin_Click(object sender, EventArgs e) { LoginLoadingScreen lls = new LoginLoadingScreen(nicknameTextBox.Text, passwordTextBox.Text); SetEnableTextBox(false); SetEnableInterfaceButtons(false); if (lls.ShowDialog() == DialogResult.OK) { Close(); } SetEnableTextBox(true); SetEnableInterfaceButtons(true); }
public void Login(LoginLoadingScreen loadingScreen, string nickname, string password) { try { //Preparing player variable Player player = new Player() { Nickname = nickname, Password = password }; bool waiting = false; ClientServiceProvider csp = new ClientServiceProvider( NetworkObjectParameters.LoginServerInformation.ServerPublicAddress, NetworkObjectParameters.LoginServerInformation.ServerPort, NetworkObjectParameters.LoginServerBufferSize, (serviceProvider, message) => { if (message.Length == 2) { player = ObjectWrapper.Deserialize <Player>(message[1]); if (player == null) { waiting = true; return; } } else { List <int> idList = ObjectWrapper.Deserialize <List <int> >(message[2]); if (idList == null) { waiting = true; return; } foreach (int i in idList) { player.PlayerAvatarMetadataList.Add(new PlayerAvatarMetadata() { Player = player, AvatarMetadata = new AvatarMetadata() { ID = i, AvatarCategory = (AvatarCategory)int.Parse(message[1]) }, }); } } }); csp.OnFailToEstabilishConnection += loadingScreen.OnFailToStablishConnection; csp.StartOperation(); csp.RequestQueue.Enqueue(NetworkObjectParameters.LoginServerLoginAttemptRequest, player); while (!waiting) { Thread.Sleep(100); } csp.StopOperation(); if (player == null || player.ID == 0) { loadingScreen.OnFailToFindPlayer(); return; } player.LoadOwnedAvatarDictionary(); //Success Parameter.Player = player; loadingScreen.Close(DialogResult.OK); } catch (Exception ex) { Console.WriteLine($"Ex: {ex.Message}"); } }
public void PrepareLoginThread(LoginLoadingScreen loadingScreen, string nickname, string password) { RequestThread = new Thread(() => Login(loadingScreen, nickname, password)); RequestThread.IsBackground = true; RequestThread.Start(); }