public LoginCompletedEventArgs Login(string username, string password) { if (isLoggedIn) return new LoginCompletedEventArgs("Already logged in"); uint pID = IntGen.GetNewGUID(); AuthRequest authRequest = new AuthRequest(); authRequest.Username = username; authRequest.Password = password; GASClient.GAS.SendPacket(authRequest.Write(), pID); GASClient.GAS.Recieve(pID); if (!GASClient.GAS.RecievedPacketsContains(pID)) return new LoginCompletedEventArgs("Server timed out"); IPacket ipacket = BasePacket.Read(GASClient.GAS.RecievedPacketsGet(pID)); if (ipacket.GetPacketType() != PacketTypeEnum.LoginResponse) return new LoginCompletedEventArgs("Incorrect server response"); AuthResponse authResponse = (AuthResponse)ipacket; Log.Debug(authResponse.ResponseType.ToString()); if (authResponse.ResponseType == LoginResponseTypeEnum.LoginValidated) { this.isLoggedIn = true; this.FluxID = authResponse.FluxID; return new LoginCompletedEventArgs(true); } if (authResponse.ResponseType == LoginResponseTypeEnum.LoginInvalid) return new LoginCompletedEventArgs("Your login doesn't seem to be valid."); if (authResponse.ResponseType == LoginResponseTypeEnum.ServerNA) return new LoginCompletedEventArgs("The server is set to maintence mode."); if (authResponse.ResponseType == LoginResponseTypeEnum.UserBanned) return new LoginCompletedEventArgs("You are banned."); return new LoginCompletedEventArgs("Unknown Error"); //Why is this even called, there is no other possible enum option }