Exemplo n.º 1
0
        private void NetworkEventDispatcher_UserLoginEvent(UserLoginEventArgs args)
        {
            try
            {
                ClientState client = ClientManager.GetClientById(args.ClientId);
                if (client != null)
                {
                    if (args.Success)
                    {
                        Account account = new Account(args.ClientId, args.Username);
                        AccountHandler.AddOnlineAccount(account);

                        client.Authorize(account);

                        //0#|lgnsccs#|username#|email#|rating#|wins#|losses#|id
                        string s = string.Format("{0}{1}{2}{1}{3}{1}{4}{1}{5}{1}{6}{1}{7}{1}{8}",
                                                 (int)ReadProtocol.GetVersion(),
                                                 m_SegmentTerminator,
                                                 NetworkCommand.GetCommand(NetworkCommandType.LoginSuccess),
                                                 account.Username,
                                                 account.Email,
                                                 account.Rating,
                                                 account.Wins,
                                                 account.Losses,
                                                 account.AccountId);

                        client.SendData(s);

                        SendAllAccountSyncDataToClient(client, AccountSyncType.Connect);
                        SendAccountSyncDataToAllClients(account, client, AccountSyncType.Connect);

                        SyncUserFriends(account);
                        SyncAllAvailableMatchesWithClient(client);
                    }

                    else
                    {
                        string s = string.Format("{0}{1}{2}{1}{3}",
                                                 (int)ReadProtocol.GetVersion(),
                                                 m_SegmentTerminator,
                                                 NetworkCommand.GetCommand(NetworkCommandType.LoginFail),
                                                 args.LoggedIn.ToString());

                        client.SendData(s);
                    }
                }
            }

            catch (Exception e) { Console.WriteLine(e.ToString()); }
        }
 public static void InvokeUserLoginEvent(UserLoginEventArgs args)
 {
     UserLoginEvent?.Invoke(args);
 }