Пример #1
0
        public void SendMessage(string msg)
        {
            if (!msg.StartsWith("/"))
            {
                bnetConnection.SendMessage(msg);

                var chatMsg = new BnetEvent();
                chatMsg.EventId   = 0x18;
                chatMsg.Message   = msg;
                chatMsg.Username  = bnetAccount.Username;
                chatMsg.TimeStamp = DateTime.Now;
                ChatMessages.Add(chatMsg);

                Messenger.Default.Send <ScrollDownMessage>(new ScrollDownMessage()
                {
                    Source = this
                });
            }
            else
            {
                if (msg.ToLower() == "/reconnect")
                {
                    ChannelUsers.Clear();
                    ChannelList.Clear();
                    FriendsList.Clear();

                    ChattingStatus = "disconnected";
                    Connect();
                }
                else if (msg.ToLower() == "/version")
                {
                    bnetConnection.SendMessage("/me is using Superiority.NET Beta5 (www.BNET.cc).");
                }
                else
                {
                    bnetConnection.SendMessage(msg);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Used internally and by AccountViewModel to connect/reconnect to Battle.net
        /// </summary>
        public void Connect()
        {
            bool ret = false;

            if (bnetAccount["Username"] != null)
            {
                var chatMsg = new BnetEvent();
                chatMsg.EventId   = 0x13;
                chatMsg.Message   = string.Format("You have an error in your settings: {0}", bnetAccount["Username"]);
                chatMsg.TimeStamp = DateTime.Now;
                ChatMessages.Add(chatMsg);

                Messenger.Default.Send <ScrollDownMessage>(new ScrollDownMessage()
                {
                    Source = this
                });
                ret = true;
            }

            if (bnetAccount["Password"] != null)
            {
                var chatMsg = new BnetEvent();
                chatMsg.EventId   = 0x13;
                chatMsg.Message   = string.Format("You have an error in your settings: {0}", bnetAccount["Password"]);
                chatMsg.TimeStamp = DateTime.Now;
                ChatMessages.Add(chatMsg);

                Messenger.Default.Send <ScrollDownMessage>(new ScrollDownMessage()
                {
                    Source = this
                });
                ret = true;
            }

            if (bnetAccount["CdKey"] != null)
            {
                var chatMsg = new BnetEvent();
                chatMsg.EventId   = 0x13;
                chatMsg.Message   = string.Format("You have an error in your settings: {0}", bnetAccount["CdKey"]);
                chatMsg.TimeStamp = DateTime.Now;
                ChatMessages.Add(chatMsg);

                Messenger.Default.Send <ScrollDownMessage>(new ScrollDownMessage()
                {
                    Source = this
                });
                ret = true;
            }

            if (bnetAccount["HomeChannel"] != null)
            {
                var chatMsg = new BnetEvent();
                chatMsg.EventId   = 0x13;
                chatMsg.Message   = string.Format("You have an error in your settings: {0}", bnetAccount["HomeChannel"]);
                chatMsg.TimeStamp = DateTime.Now;
                ChatMessages.Add(chatMsg);

                Messenger.Default.Send <ScrollDownMessage>(new ScrollDownMessage()
                {
                    Source = this
                });
                ret = true;
            }

            if (ret)
            {
                var chatMsg = new BnetEvent();
                chatMsg.EventId   = 0x13;
                chatMsg.Message   = "Settings validation failed! Fix the errors listed above then type /reconnect to try again.";
                chatMsg.TimeStamp = DateTime.Now;
                ChatMessages.Add(chatMsg);

                Messenger.Default.Send <ScrollDownMessage>(new ScrollDownMessage()
                {
                    Source = this
                });

                return;
            }

            if (bnetConnection != null)
            {
                bnetConnection.Dispose();
            }

            ChattingStatus = "connecting";

            ThreadPool.QueueUserWorkItem((object state) =>
            {
                bnetConnection = new BnetConnection(bnetAccount, token);
                bnetConnection.Connect();
            });
        }