private void HandleLogin(object sender, JavascriptMethodEventArgs e) { var username = UiManager.webView.ExecuteJavascriptWithResult("document.getElementById('txt-username').value"); var password = UiManager.webView.ExecuteJavascriptWithResult("document.getElementById('txt-password').value"); password = HashHelper.CalculateSha512Hash(password); var packet = new LoginRequestPacket(username, password); NetworkManager.Instance.SendPacket(packet); }
private void ProcessLoginRequest(LoginRequestPacket obj) { var username = obj.Username; var password = obj.Password; if (AreCredentialsValid(username, password)) { Logger.Instance.Log(Level.Info, username + " has succesfully authenticated"); var packet = new LoginResultPacket(LoginResultPacket.LoginResult.Succesful); ClientNetworkManager.Instance.SendPacket(packet, obj.Sender); // Grab that account using (var context = new ServerContext()) { var account = context.Accounts.FirstOrDefault(x => x.Username.ToLower() == obj.Username); var character = context.Characters.FirstOrDefault(x => x.AccountId == account.AccountId); if(character == null) throw new Exception("A character could not be found under this slot. This should never happen."); // Introduce the entity into the simulation var entity = EntityFactory.CreateCharacter(character, obj.Sender); var mapSimulator = ((ServerServiceContainer) ServiceContainer).MapSimulators[character.MapId]; mapSimulator.AddEntity(entity); } } else { // Reject the user if they aren't able to authenticate var packet = new LoginResultPacket(LoginResultPacket.LoginResult.Failed); ClientNetworkManager.Instance.SendPacket(packet, obj.Sender); } }
public static new Packet FromNetBuffer(NetIncomingMessage incomingMessage) { var packet = new LoginRequestPacket(incomingMessage.ReadString(), incomingMessage.ReadString()); return packet; }