Пример #1
0
        void HandleMemberInfoResponse(ClientSocket clientSocket, Packet pak)
        {
            this.Dispatcher.Invoke((MethodInvoker)delegate
            {
                    ReceivedFriendCount++;

                    if (pak.Readbool())
                    {
                        int MemberID = pak.Readint();
                        string MemberNickname = pak.Readstring();
                        string MemberStatus = pak.Readstring();
                        int MemberAuth = pak.Readint();
                        byte StatusCode = pak.Readbyte();
                        bool PendingRequest = pak.Readbool();
                        string FirstName = pak.Readstring();
                        string LastName = pak.Readstring();

                        if (!Contacts.ContainsKey(MemberID))
                            Contacts.Add(MemberID, new Contact(MemberID, MemberNickname, FirstName, LastName, PendingRequest, (Status)StatusCode, MemberStatus, MemberAuth));
                        else
                        {
                            Contact contact = Contacts[MemberID];

                            contact.NickName = MemberNickname;
                            contact.StatusUpdate = MemberStatus;
                            contact.Authority = MemberAuth;
                            contact.status = (Status)StatusCode;
                            contact.Pending = PendingRequest;
                            contact.FirstName = FirstName;
                            contact.LastName = LastName;
                            contact.FullName = FirstName + " " + LastName;
                        }

                        if (PendingRequest && ConfigManager.Instance.GetBool("txt_newrequestnotification", true) && ConfigManager.Instance.GetBool("txt_notifications", true))
                        {
                            NotificationWindow.ShowNotification("Pending Contact", String.Format("{0} has requested you be added to their contact list.", MemberNickname));
                        }

                        if (ReceivedFriendCount >= FriendCount)
                            BlazeGames.IM.Client.MainWindow.Instance.page_Contacts.Draw();
                    }

                    if (ReceivedFriendCount == FriendCount)
                        clientSocket.SendPacket(Packet.New(Packets.PAK_CLI_OFFLNMSGRQST));
            }, null);
        }
Пример #2
0
        void HandleLoginResponse(ClientSocket clientSocket, Packet pak)
        {
            bool LoginValid = pak.Readbool();

            if (LoginValid)
            {
                string nickname = pak.Readstring();
                string StatusUpdate = pak.Readstring();
                string FullName = pak.Readstring();

                clientSocket.SendPacket(Packet.New(Packets.PAK_CLI_FRNDLSTRQST));
                this.Dispatcher.Invoke((MethodInvoker)delegate
                {
                    Account = BlazeGames.IM.Client.MainWindow.Instance.page_Login.txt_account.Text;
                    Password = BlazeGames.IM.Client.MainWindow.Instance.page_Login.txt_password.Password;
                    NickName = nickname;
                    App.FullName = FullName;

                    BlazeGames.IM.Client.MainWindow.Instance.page_Login.txt_loading.Content = "Fetching Your Contacts";
                    BlazeGames.IM.Client.MainWindow.Instance.txt_nickname.Text = nickname;
                    //BlazeGames.IM.Client.MainWindow.Instance.txt_nickname.Effect = new System.Windows.Media.Effects.BlurEffect();
                    BlazeGames.IM.Client.MainWindow.Instance.txt_status.Text = StatusUpdate;
                    CurrentStatus = Status.Online;

                    BlazeGames.IM.Client.MainWindow.Instance.profile_image_source.ImageSource = new System.Windows.Media.Imaging.BitmapImage(new Uri("https://blaze-games.com/api/image/nocompress/?nickname=" + nickname), new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore));
                }, null);
            }
            else
            {
                this.Dispatcher.Invoke((MethodInvoker)delegate
                {
                    byte ResponseByte = pak.Readbyte();

                    if (ResponseByte == 0x01)
                        NotificationWindow.ShowNotification("Unable to login", "Blaze Games IM was unable to verify this account, please check your username and password and try again.");
                    else if(ResponseByte == 0x02)
                        NotificationWindow.ShowNotification("Unable to login", "This account is already connected, please sign out and try again.");
                    else
                        MessageBox.Show("o.O", "Login Failed");

                    BlazeGames.IM.Client.MainWindow.Instance.page_Login.btn_login.Visibility = Visibility.Visible;
                    BlazeGames.IM.Client.MainWindow.Instance.page_Login.Loading.Visibility = Visibility.Hidden;
                    BlazeGames.IM.Client.MainWindow.Instance.page_Login.txt_loading.Visibility = Visibility.Hidden;
                    BlazeGames.IM.Client.MainWindow.Instance.page_Login.txt_account.Visibility = Visibility.Visible;
                    BlazeGames.IM.Client.MainWindow.Instance.page_Login.txt_password.Visibility = Visibility.Visible;
                }, null);
            }
        }