private static void IrcClient_LocalUser_JoinedChannel(object sender, IrcChannelEventArgs e) { var localUser = (IrcLocalUser)sender; e.Channel.UserJoined += IrcClient_Channel_UserJoined; e.Channel.UserLeft += IrcClient_Channel_UserLeft; TechBot.Objects.Channel newChannel = new TechBot.Objects.Channel(e.Channel); ChannelList.Add(newChannel); Log.Logger.OutputToConsole("You joined the channel {0}.", e.Channel.Name); }
private static void IrcClient_Channel_UserLeft(object sender, IrcChannelUserEventArgs e) { var channel = (IrcChannel)sender; TechBot.Objects.Channel Channel = FindChannel(e.ChannelUser.Channel.Name.Substring(1)); TechBot.Objects.User tempUser = Channel.FindUser(e.ChannelUser.User.NickName); Channel.UserLeft(tempUser); Log.Logger.OutputToConsole("[{0}] User {1} left the channel.", channel.Name, e.ChannelUser.User.NickName); }
private static void IrcClient_LocalUser_LeftChannel(object sender, IrcChannelEventArgs e) { var localUser = (IrcLocalUser)sender; e.Channel.UserJoined -= IrcClient_Channel_UserJoined; e.Channel.UserLeft -= IrcClient_Channel_UserLeft; TechBot.Objects.Channel Channel = FindChannel(e.Channel.Name.Substring(1)); if (ChannelList.Contains(Channel)) { ChannelList.Remove(Channel); } Log.Logger.OutputToConsole("You left the channel {0}.", e.Channel.Name); }
private static void IrcClient_Process(object sender, IrcRawMessageEventArgs e) { ThreadPool.QueueUserWorkItem( new WaitCallback(delegate(object state) { try { string[] strlist = e.RawContent.Split(" "); if (strlist[2] == "PRIVMSG") { string[] modes = strlist [0] .Split(";"); int i = 0; bool isMod = false; string username = ""; foreach (string r in modes) { if (r.Contains("mod=")) { string IsMod = r.Split("=")[1]; // IsMod = IsMod.Remove(IsMod.Length - 1); if (IsMod == "1") { isMod = true; } } else if (r.Contains("display-name=")) { username = r.Split("=")[1]; } i++; } // Channel = String channelName // Username = String username // Message = String message // Is User mod? = Boolean isMod string channelName = strlist [3] .Substring(1); string message = strlist [4] .Substring(1); if (username.ToLower() == channelName.ToLower()) { isMod = true; } Log.Logger.OutputToConsole("[{0}] {1}: {2}", strlist[3], username, message); TechBot.Objects.Channel Channel = FindChannel(channelName); TechBot.Objects.User tempUser = Channel.FindUser(username); if (tempUser == null) { tempUser = new TechBot.Objects.User(username, channelName); } Channel.UserJoined(tempUser); Channel.ChatMessageReceived(tempUser, isMod, message); } else { // Log.Logger.OutputToConsole(e.RawContent); } } catch { } }), null); }