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); } }
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 + " ==============="); } }
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]); } } } }
/// <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); }