示例#1
0
        private void DoUserLeftChannel(string channelName, string userName)
        {
            Channel channel = channels.Find(c => c.ChannelName == channelName);

            if (channel == null)
            {
                return;
            }

            channel.OnUserLeft(userName);

            if (userName == ProgramConstants.PLAYERNAME)
            {
                foreach (ChannelUser user in channel.Users)
                {
                    RemoveChannelFromUser(user.IRCUser.Name, channelName);
                }

                if (!channel.Persistent)
                {
                    channels.Remove(channel);
                }

                channel.ClearUsers();

                return;
            }

            RemoveChannelFromUser(userName, channelName);
        }
        private void DoUserLeftChannel(string channelName, string userName)
        {
            Channel channel = FindChannel(channelName);

            if (channel == null)
            {
                return;
            }

            channel.OnUserLeft(userName);

            if (userName == ProgramConstants.PLAYERNAME)
            {
                channel.Users.DoForAllUsers(user =>
                {
                    RemoveChannelFromUser(user.IRCUser.Name, channelName);
                });

                if (!channel.Persistent)
                {
                    channels.Remove(channel);
                }

                channel.ClearUsers();

                return;
            }

            RemoveChannelFromUser(userName, channelName);
        }