Example #1
0
        private void OnUserListUpdate(object sender, IrcUserListReceivedEventArgs args)
        {
            DebugHandler.TraceMessage("OnUserListUpdate Called.", DebugSource.TASK, DebugType.ENTRY_EXIT);

            try
            {
                if (args.UsersPerChannel.Count > 0)
                {
                    IrcClientConnectionStatusArgs eventArgs = new IrcClientConnectionStatusArgs()
                    {
                        ChannelsAndUsers   = args.UsersPerChannel,
                        Connected          = true,
                        CurrentIrcSettings = IrcSettings
                    };

                    DebugHandler.TraceMessage(eventArgs.ToString(), DebugSource.TASK, DebugType.PARAMETERS);

                    if (!IsConnectedBool)
                    {
                        OnIrcClientConnectionStatusEvent?.Invoke(this, eventArgs);
                    }
                    IsConnectedBool = true;
                }
            }
            catch (Exception e)
            {
                DebugHandler.TraceMessage(e.ToString(), DebugSource.TASK, DebugType.WARNING);
            }
        }
Example #2
0
 public static void userListCallback(object source, IrcUserListReceivedEventArgs args)
 {
     foreach (KeyValuePair <string, List <string> > usersPerChannel in args.UsersPerChannel)
     {
         Console.WriteLine("===============USERS ON CHANNEL " + usersPerChannel.Key + " ===============");
         foreach (string user in usersPerChannel.Value)
         {
             Console.WriteLine(user);
         }
         Console.WriteLine("===============END USERS ON CHANNEL " + usersPerChannel.Key + " ===============");
     }
 }
Example #3
0
        public static void userListCallback(object source, IrcUserListReceivedEventArgs args)
        {
            if (args.UsersPerChannel.Count == 0)
            {
                return;
            }

            Debug.WriteLine("Generating user list...");
            Debug.WriteLine("Users in channel: " + args.UsersPerChannel.Count);

            foreach (KeyValuePair <string, List <string> > usersPerChannel in args.UsersPerChannel)
            {
                string channel = usersPerChannel.Key.ToLower();
                channel = channel.Replace("#", "");
                if (!users.ContainsKey(channel)) // sometimes skipped?!
                {
                    Debug.WriteLine("Creating users key " + channel);
                    users.Add(channel, args.UsersPerChannel[usersPerChannel.Key]);
                    continue;
                }
                // check if offline user is still in list
                for (int i = 0; i < users[channel].Count; i++)
                {
                    if (!usersPerChannel.Value.Contains(users[channel][i]))
                    {
                        users[channel].Remove(users[channel][i]);
                    }
                }
                // if user is not in list, add them
                for (int i = 0; i < usersPerChannel.Value.Count; i++)
                {
                    if (usersPerChannel.Value[i] == "") // there's always 1 empty user for some reason
                    {
                        continue;
                    }
                    //Debug.WriteLine("[UL]: " + user);
                    if (!users[channel].Contains(usersPerChannel.Value[i]))
                    {
                        users[channel].Add(usersPerChannel.Value[i]);
                    }
                }
            }
        }
Example #4
0
 /// <summary>
 /// Event that gets fired when a user list has been received.
 /// </summary>
 /// <param name="sender">Values of the class that fired the event</param>
 /// <param name="args">IrcUserListReceivedEventArgs contains the Dictionary where the key is the channel and the list contains the usernames</param>
 public void OnUserListReceived(object sender, IrcUserListReceivedEventArgs args)
 {
     OnUserListReceivedLocal(args.UsersPerChannel);
 }