private void IrcClient_DataRecieved(object sender, IrcDataEventArgs e) { IrcClient_UpdateChannelList(sender, e); if (e.Command != "PONG") { lastRecievedData = e.Data; //AppendText(DateTime.Now.ToString("<HH:mm:ss>") + e.Data + Environment.NewLine); Console.WriteLine(DateTime.Now.ToString("<HH:mm:ss>") + "<" + e.From + " " + e.Command + " " + e.To + "> " + IrcFormatting.ClearFormatting(e.Message)); } }
private void IrcClient_DataSent(object sender, IrcDataEventArgs e) { lastSentData = e.Data; IrcDataEventArgs e2 = new IrcDataEventArgs(":" + Nick + " " + e.Data); IrcClient_UpdateChannelList(sender, e2); sw.WriteLine(e.Data); Console.WriteLine(DateTime.Now.ToString("<HH:mm:ss>") + "<" + e2.From + " " + e2.Command + " " + e2.To + "> " + IrcFormatting.ClearFormatting(e2.Message)); if (e2.Command == "NICK") { nick = e2.To; } }
private void IrcClient_UpdateChannelList(object sender, IrcDataEventArgs e) { string[] msg = e.Message.Split(' '); switch (e.Command) { case "JOIN": if (e.From == Nick) { Channels.Add(e.To); } else { Channels[e.To].Users.Add(e.From); } break; case "PART": if (e.From == Nick) { Channels.Remove(e.To); } else { Channels[e.To].Users.Remove(e.From); } break; case "NICK": for (int i = 0; i < Channels.Count; i++) { if (Channels[i].Users[e.From] != null) { Channels[i].Users[e.From].Name = e.To; } } break; case "MODE": switch (msg[0]) { case "+a": Channels[e.To].Users[msg[1]].IsAdmin = true; break; case "-a": Channels[e.To].Users[msg[1]].IsAdmin = false; break; case "+o": Channels[e.To].Users[msg[1]].IsOperator = true; break; case "-o": Channels[e.To].Users[msg[1]].IsOperator = false; break; case "+h": Channels[e.To].Users[msg[1]].IsHalfOperator = true; break; case "-h": Channels[e.To].Users[msg[1]].IsHalfOperator = false; break; case "+v": Channels[e.To].Users[msg[1]].IsVoice = true; break; case "-v": Channels[e.To].Users[msg[1]].IsVoice = false; break; } break; case "353": string[] nick = e.Message.Substring(e.Message.IndexOf(':') + 1).Split(' '); string chan = e.Message.Substring(e.Message.IndexOf('#')); chan = chan.Substring(0, chan.IndexOf(' ')).Trim().ToLower(); Channels[chan].Users.Clear(); for (int i = 0; i < nick.Length; i++) { Channels[chan].Users.Add(nick[i]); } break; } }