public void ProcessLogin(LoginMessage msg) { Player player = _server.GetPlayerUnlogged(msg.UserId); if (null == player || player.State == MenuState.Invalid) { return; } int unloggedkey = player.Id; if (Login(msg.Login, msg.Password)) { MenuState state = PlayerStateMachine.Transform(player.State, MenuAction.Login); if (state == MenuState.Invalid) { SendMessage(MessageFactory.Create(MessageType.LoginUnsuccessful), player.Id); return; } player.State = state; player.SetData(LoadPlayerData(msg.Login)); } _server.Chat.AddPlayer(player); SendMessage((MessageFactory.Create(MessageType.LoginSuccessful)), player.Id); }
private void ProcessLogin(LoginMessage msg) { //Pobranie gracza z listy niezalogowanych Player player = _server.GetPlayerUnlogged(msg.SenderId); InfoLog.WriteInfo(string.Format(ProcessStringFormat, "Login", msg.SenderId), EPrefix.ServerProcessInfo); //Jesli gracza nie ma, lub jego stan jest jakis dziwny - koniec obslugi if (null == player || player.State != MenuState.Unlogged) { return; } if ((Login(msg.SenderId, msg.Login, msg.Password) || !Settings.Default.DBAvail) && !IsPlayerAlreadyLogged(msg.Login)) { MenuState state = PlayerStateMachine.Transform(player.State, MenuAction.Login); if (state == MenuState.Invalid) { SendMessage(Utils.CreateResultMessage(ResponseType.Login, ResultType.Unsuccesful), player.Id); return; } LoggingTransfer(player); player.State = state; if (!Settings.Default.DBAvail) { PlayerData pd = new PlayerData(); pd.Login = msg.Login; pd.LossNo = pd.WinNo = 0; pd.Id = msg.SenderId; player.SetData(pd); } } else { SendMessage(Utils.CreateResultMessage(ResponseType.Login, ResultType.Unsuccesful), player.Id); InfoLog.WriteInfo("Player: " + msg.Login + "failed to login", EPrefix.ServerProcessInfo); return; } SendMessage(Utils.CreateResultMessage(ResponseType.Login, ResultType.Successful), player.Id); NumericMessage idmsg = (NumericMessage)MessageFactory.Create(MessageType.IdInformation); idmsg.Number = player.Id; SendMessage(idmsg, player.Id); }