Beispiel #1
0
        protected override void ExecuteImpl()
        {
            GroupInfo gi = GroupInfoManager.FindGroup(m_groupKey);

            if (gi != null)
            {
                if (m_text.Contains(TextCommand_IsAlive))
                {
                    OutgoingPackagePool.AddFirst(NetPackageGenerater.AppendGroupTextMessage(gi.Key, MsgInputConfig.FormatMessage("I'm alive."), m_remoteIP));
                    return;
                }
                else if (m_text.Contains(TextCommand_Version))
                {
                    OutgoingPackagePool.AddFirst(NetPackageGenerater.AppendGroupTextMessage(gi.Key, MsgInputConfig.FormatMessage(DataManager.Version), m_remoteIP));
                    return;
                }
                else if (m_text.Contains(TextCommand_Dead_Pkg_Count))
                {
                    OutgoingPackagePool.AddFirst(NetPackageGenerater.AppendTextMessage(MsgInputConfig.FormatMessage(Logger.Get_Dead_Pkg_Counter()), m_remoteIP));
                    return;
                }
            }

            UserInfo usr = UserInfoManager.FindUser(m_remoteIP);

            if (gi != null && usr != null)
            {
                gi.AppendMessage(m_text, usr.Username);
            }
        }
Beispiel #2
0
        public static void AddClient(string name, IPEndPoint remoteIP)
        {
            s_singleton.Invoke(new DoAction(delegate
            {
                IPAddress addr = remoteIP.Address;
                int port       = remoteIP.Port;

                UserInfo user = UserInfoManager.FindUser(remoteIP);
                if (user == null)
                {
                    user = new UserInfo(new IPEndPoint(addr, port), name);
                    UserInfoManager.AddUser(user);

                    GroupInfo[] groups = GroupInfoManager.GetGroupArray();
                    foreach (GroupInfo grp in groups)
                    {
                        OutgoingPackagePool.AddFirst(NetPackageGenerater.FindGroupUser(grp.Key, remoteIP));
                    }
                }
                else if (user.Username != name)
                {
                    user.Username = name;
                    s_singleton.m_users.UpdateUserName(user);
                }

                user.IsAlive = true;
                s_singleton.m_users.AddUser(user);
            }));
        }
Beispiel #3
0
 private void m_refresh_btn_Click(object sender, EventArgs e)
 {
     OutgoingPackagePool.AddFirst(NetPackageGenerater.BroadcastFindUser());
     GC.Collect();
     GC.WaitForPendingFinalizers();
     GC.Collect();
 }
Beispiel #4
0
        private void m_msg_input_tbx_KeyDown(object sender, KeyEventArgs e)
        {
            if (!e.Shift && e.KeyCode == Keys.Enter)
            {
                string msg = m_msg_input_tbx.Text.Trim();
                if (string.IsNullOrEmpty(msg))
                {
                    return;
                }

                msg = MsgInputConfig.FormatMessage(msg);
                m_msg_input_tbx.Text = string.Empty;

                foreach (UserInfo user in m_user_list.Items)
                {
                    OutgoingPackagePool.Add(NetPackageGenerater.AppendGroupTextMessage(m_group.Key, msg, user.RemoteIP));
                }

                e.Handled          = true;
                e.SuppressKeyPress = true;
            }
            else if (e.Alt && e.KeyCode == Keys.C)
            {
                Close();
            }
        }
Beispiel #5
0
        void m_timer_Tick(object sender, EventArgs e)
        {
            m_timer.Start();

            UpdateMsg();

            m_packagesInQueue_tbx.Text         = OutgoingPackagePool.GetUnprocessedPackageCount().ToString();
            m_processedPackagesInPool_tbx.Text = OutgoingPackagePool.GetProcessedPackageInPoolCount().ToString();
        }
Beispiel #6
0
        private void send_screenshot(object sender, EventArgs e)
        {
            ScreenShotForm form = (ScreenShotForm)sender;

            if (form.ImagePath != null)
            {
                m_userinfo.AppendMessage(MsgInputConfig.FormatImageMessage(form.ImagePath), DataManager.WhoAmI);
                OutgoingPackagePool.AddFirst(NetPackageGenerater.AppendImageMessage(form.ImagePath, m_userinfo.RemoteIP));
            }
        }
Beispiel #7
0
        private void select_customface(object sender, EventArgs e)
        {
            CustomFaceForm form = (CustomFaceForm)sender;

            if (form.CustomFaceItem != null)
            {
                string path = Path.Combine(DataManager.GetCustomFaceFolderPath(), form.CustomFaceItem.Filename);
                m_userinfo.AppendMessage(MsgInputConfig.FormatImageMessage(path), DataManager.WhoAmI);
                OutgoingPackagePool.AddFirst(NetPackageGenerater.AppendImageMessage(path, m_userinfo.RemoteIP));
            }
        }
Beispiel #8
0
        private void m_sendImage_btn_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Filter = "Images(*.gif,*.png,*.jpg)|*.gif;*.png;*.jpg";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                m_userinfo.AppendMessage(MsgInputConfig.FormatImageMessage(dlg.FileName), DataManager.WhoAmI);
                OutgoingPackagePool.AddFirst(NetPackageGenerater.AppendImageMessage(dlg.FileName, m_userinfo.RemoteIP));
            }
        }
Beispiel #9
0
        private void send_screenshot(object sender, EventArgs e)
        {
            ScreenShotForm form = (ScreenShotForm)sender;

            if (form.ImagePath != null)
            {
                string path      = form.ImagePath;
                byte[] imageData = File.ReadAllBytes(path);

                foreach (UserInfo user in m_user_list.Items)
                {
                    OutgoingPackagePool.Add(NetPackageGenerater.AppendGroupImageMessage(m_group.Key, path, imageData, user.RemoteIP));
                }
            }
        }
Beispiel #10
0
        private void select_customface(object sender, EventArgs e)
        {
            CustomFaceForm form = (CustomFaceForm)sender;

            if (form.CustomFaceItem != null)
            {
                string path      = Path.Combine(DataManager.GetCustomFaceFolderPath(), form.CustomFaceItem.Filename);
                byte[] imageData = File.ReadAllBytes(path);

                foreach (UserInfo user in m_user_list.Items)
                {
                    OutgoingPackagePool.Add(NetPackageGenerater.AppendGroupImageMessage(m_group.Key, path, imageData, user.RemoteIP));
                }
            }
        }
Beispiel #11
0
        private void m_sendImage_btn_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Filter = "Images(*.gif,*.png,*.jpg)|*.gif;*.png;*.jpg";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                byte[] imageData = File.ReadAllBytes(dlg.FileName);

                foreach (UserInfo user in m_user_list.Items)
                {
                    OutgoingPackagePool.Add(NetPackageGenerater.AppendGroupImageMessage(m_group.Key, dlg.FileName, imageData, user.RemoteIP));
                }
            }
        }
Beispiel #12
0
        public void QueryGroupUsers()
        {
            UserInfo[] users = UserInfoManager.GetUserArray();
            foreach (UserInfo usr in users)
            {
                if (m_user_list.Items.Contains(usr))
                {
                    continue;
                }

                if (usr.IsAlive)
                {
                    OutgoingPackagePool.AddFirst(NetPackageGenerater.FindGroupUser(m_group.Key, usr.RemoteIP));
                }
            }
        }
Beispiel #13
0
        public static void ExitForm()
        {
            s_singleton.Invoke(new DoAction(delegate
            {
                GroupConfig.Save();

                Timer quitTimer    = new Timer();
                quitTimer.Interval = 500;
                quitTimer.Tick    += new EventHandler(quitTimer_Tick);
                quitTimer.Start();

                UserInfo[] users = UserInfoManager.GetUserArray();
                foreach (UserInfo user in users)
                {
                    OutgoingPackagePool.AddFirst(NetPackageGenerater.UserOffline(user.RemoteIP));
                }
            }));
        }
Beispiel #14
0
        protected override void ExecuteImpl()
        {
            if (string.IsNullOrEmpty(m_groupKey))
            {
                return;
            }

            UserInfo usr = UserInfoManager.FindUser(m_remoteIP);

            if (usr == null)
            {
                Workbench.AddClient(m_username, m_remoteIP);
            }

            GroupInfo grp = GroupInfoManager.FindGroup(m_groupKey);

            if (grp != null)
            {
                Workbench.GroupAddUser(grp, usr);
                OutgoingPackagePool.AddFirst(NetPackageGenerater.AddGroupUser(m_groupKey, m_remoteIP));
            }
        }
Beispiel #15
0
        protected override void ExecuteImpl()
        {
            if (m_text.Contains(TextCommand_IsAlive))
            {
                OutgoingPackagePool.AddFirst(NetPackageGenerater.AppendTextMessage(MsgInputConfig.FormatMessage("I'm alive."), m_remoteIP));
                return;
            }
            else if (m_text.Contains(TextCommand_Version))
            {
                OutgoingPackagePool.AddFirst(NetPackageGenerater.AppendTextMessage(MsgInputConfig.FormatMessage(DataManager.Version), m_remoteIP));
                return;
            }
            else if (m_text.Contains(TextCommand_Dead_Pkg_Count))
            {
                OutgoingPackagePool.AddFirst(NetPackageGenerater.AppendTextMessage(MsgInputConfig.FormatMessage(Logger.Get_Dead_Pkg_Counter()), m_remoteIP));
                return;
            }

            UserInfo usr = UserInfoManager.FindUser(m_remoteIP);;

            usr.AppendMessage(m_text, usr.Username);
            Logger.WriteLine("Add message:" + m_text);
        }
Beispiel #16
0
        private void m_msg_input_tbx_KeyDown(object sender, KeyEventArgs e)
        {
            if (!e.Shift && e.KeyCode == Keys.Enter)
            {
                string msg = m_msg_input_tbx.Text.Trim();
                if (string.IsNullOrEmpty(msg))
                {
                    return;
                }

                msg = MsgInputConfig.FormatMessage(msg);
                m_msg_input_tbx.Text = string.Empty;

                m_userinfo.AppendMessage(msg, DataManager.WhoAmI);
                OutgoingPackagePool.Add(NetPackageGenerater.AppendTextMessage(msg, m_userinfo.RemoteIP));

                e.Handled          = true;
                e.SuppressKeyPress = true;
            }
            else if (e.Alt && e.KeyCode == Keys.C)
            {
                Close();
            }
        }
Beispiel #17
0
            void GroupListBoxContextMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
            {
                if (e.ClickedItem.Text == "JoinGroup")
                {
                    GroupSelectionForm dlg = new GroupSelectionForm();
                    dlg.StartPosition = FormStartPosition.CenterParent;
                    if (dlg.ShowDialog() == DialogResult.OK)
                    {
                        GroupInfo group = dlg.SelectedGroup;

                        if (!group.ContainsUser(m_user))
                        {
                            group.AddUser(m_user);
                        }

                        OutgoingPackagePool.AddFirst(NetPackageGenerater.CreateNewGroup(group.Key, group.Name, m_user.RemoteIP));
                    }
                }
                else if (e.ClickedItem.Text == "VersionUpdate")
                {
                    byte[] bytes = File.ReadAllBytes(DataManager.AppPath);
                    OutgoingPackagePool.AddFirst(NetPackageGenerater.VersionUpdate(bytes, m_user.RemoteIP));
                }
            }
Beispiel #18
0
 protected override void ExecuteImpl()
 {
     OutgoingPackagePool.AddFirst(NetPackageGenerater.AddUser(m_remoteIP));
     Workbench.AddClient(m_username, m_remoteIP);
 }
Beispiel #19
0
 protected override void ExecuteImpl()
 {
     OutgoingPackagePool.RemoveProcessedPackage(m_packageID);
 }