コード例 #1
0
ファイル: Workbench.cs プロジェクト: patrick963534/g11
        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);
            }));
        }
コード例 #2
0
ファイル: UsersList.cs プロジェクト: patrick963534/g11
            public UserContextMenu(UserInfo user)
            {
                this.Items.Add("JoinGroup");
                this.Items.Add("VersionUpdate");
                this.ItemClicked += new ToolStripItemClickedEventHandler(GroupListBoxContextMenu_ItemClicked);

                m_user = user;
            }
コード例 #3
0
ファイル: UsersList.cs プロジェクト: patrick963534/g11
 public void AddUser(UserInfo user)
 {
     if (!m_users_list.Items.Contains(user))
     {
         m_users_list.Items.Add(user);
         Logger.WriteLine(string.Format("Add User: {0}, IP: {1}", user.Username, user.RemoteIP));
     }
 }
コード例 #4
0
ファイル: GroupInfo.cs プロジェクト: patrick963534/g11
        public void AddUser(UserInfo user)
        {
            if (m_users.ContainsKey(user.GetToken()))
                return;

            m_users.Add(user.GetToken(), user);

            if (Chatter != null)
                Chatter.AddUser(user);
        }
コード例 #5
0
ファイル: GroupInfo.cs プロジェクト: patrick963534/g11
        public void DeleteUser(UserInfo user)
        {
            string token = user.GetToken();
            if (m_users.ContainsKey(token))
            {
                m_users.Remove(token);

                if (Chatter != null)
                    Chatter.DeleteUser(user);
            }
        }
コード例 #6
0
ファイル: ChatForm.cs プロジェクト: patrick963534/g11
        public ChatForm(UserInfo userinfo)
        {
            InitializeComponent();

            Show();

            StartPosition = FormStartPosition.CenterScreen;
            m_userinfo = userinfo;
            m_msg_input_tbx.Focus();

            this.Text = string.Format("聊天对象: {0}", userinfo.Username);

            UpdateMessage();
        }
コード例 #7
0
ファイル: GroupInfo.cs プロジェクト: patrick963534/g11
 public bool ContainsUser(UserInfo user)
 {
     return m_users.ContainsKey(user.GetToken());
 }
コード例 #8
0
ファイル: UsersList.cs プロジェクト: patrick963534/g11
 public void UpdateUserName(UserInfo user)
 {
     int pos = m_users_list.Items.IndexOf(user);
     m_users_list.Items.RemoveAt(pos);
     m_users_list.Items.Insert(pos, user);
 }
コード例 #9
0
ファイル: UsersList.cs プロジェクト: patrick963534/g11
 public void DeleteUser(UserInfo user)
 {
     if (m_users_list.Items.Contains(user))
         m_users_list.Items.Remove(user);
 }
コード例 #10
0
ファイル: GroupChatterForm.cs プロジェクト: patrick963534/g11
 public void AddUser(UserInfo user)
 {
     if (!m_user_list.Items.Contains(user))
         m_user_list.Items.Add(user);
 }
コード例 #11
0
ファイル: Command.cs プロジェクト: patrick963534/g11
        public NP_AppendImageMessageCmd(byte[] data, IPEndPoint remoteIP)
        {
            m_user = UserInfoManager.FindUser(remoteIP);
            int length = Helper.GetInt(data);
            m_filename = Helper.GetString(data, 4, length);
            m_filename = Path.Combine(DataManager.GetCustomFaceFolderPath(), m_filename);

            int fileDataOffset = length + 4;
            int fileDataLength = data.Length - fileDataOffset;

            MemoryStream ms = new MemoryStream(data, fileDataOffset, fileDataLength);
            byte[] imgData = ms.ToArray();
            ms.Dispose();

            GenerateImageFile(imgData, ref m_filename);
        }
コード例 #12
0
ファイル: UserInfo.cs プロジェクト: patrick963534/g11
 public static void AddUser(UserInfo user)
 {
     lock (LockObject)
     {
         string token = user.GetToken();
         if (!m_users.ContainsKey(token))
             m_users.Add(token, user);
     }
 }
コード例 #13
0
ファイル: Workbench.cs プロジェクト: patrick963534/g11
            void m_timer_Tick(object sender, EventArgs e)
            {
                m_timer.Start();

                if (m_flashingUser != null && !m_flashingUser.IsReceiveNewMessage)
                {
                    m_flashingUser = null;
                }

                if (m_flashingGroup != null && !m_flashingGroup.IsReceiveNewMessage)
                {
                    m_flashingGroup = null;
                }

                if (m_flashingUser == null)
                {
                    m_flashingUser = UserInfoManager.FindUserWhichHaveNewMessage();
                }

                if (m_flashingUser == null)
                {
                    m_flashingGroup = GroupInfoManager.FindGroupWhichHaveNewMessage();
                }

                if (m_flashingUser == null && m_flashingGroup == null)
                {
                    m_tray.Icon = IconManager.Tray_Normal;
                    return;
                }
                else
                {
                    m_state = !m_state;

                    if (m_state)
                        m_tray.Icon = IconManager.Tray_Normal;
                    else
                        m_tray.Icon = IconManager.Tray_Blank;
                }
            }
コード例 #14
0
ファイル: Workbench.cs プロジェクト: patrick963534/g11
        public static void GroupAddUser(GroupInfo group, UserInfo user)
        {
            if (group == null || user == null)
                return;

            s_singleton.Invoke(new DoAction(delegate
            {
                Logger.WriteLine(string.Format("Group: {0}, Add user: {1}", group.Name, user.Username));
                group.AddUser(user);
            }));
        }