Exemple #1
0
 static void Main(string[] args)
 {
     var client = new IrcClient("irc.freenode.net", new IrcUser("ChatSharp", "ChatSharp"));
     client.NetworkError += (s, e) => Console.WriteLine("Error: " + e.SocketError);
     client.RawMessageRecieved += (s, e) => Console.WriteLine("<< {0}", e.Message);
     client.RawMessageSent += (s, e) => Console.WriteLine(">> {0}", e.Message);
     client.UserMessageRecieved += (s, e) =>
         {
             if (e.PrivateMessage.Message.StartsWith(".join "))
                 client.Channels.Join(e.PrivateMessage.Message.Substring(6));
             else if (e.PrivateMessage.Message.StartsWith(".list "))
             {
                 var channel = client.Channels[e.PrivateMessage.Message.Substring(6)];
                 var list = channel.Users.Select(u => u.Nick).Aggregate((a, b) => a + "," + b);
                 client.SendMessage(list, e.PrivateMessage.User.Nick);
             }
             else if (e.PrivateMessage.Message.StartsWith(".whois "))
                 client.WhoIs(e.PrivateMessage.Message.Substring(7), null);
             else if (e.PrivateMessage.Message.StartsWith(".raw "))
                 client.SendRawMessage(e.PrivateMessage.Message.Substring(5));
             else if (e.PrivateMessage.Message.StartsWith(".mode "))
             {
                 var parts = e.PrivateMessage.Message.Split(' ');
                 client.ChangeMode(parts[1], parts[2]);
             }
         };
     client.ChannelMessageRecieved += (s, e) =>
         {
             Console.WriteLine("<{0}> {1}", e.PrivateMessage.User.Nick, e.PrivateMessage.Message);
         };
     client.ConnectAsync();
     while (true) ;
 }
Exemple #2
0
 static void Main(string[] args)
 {
     var client = new IrcClient("irc.freenode.net", new IrcUser("ChatSharp", "ChatSharp"));
     client.NetworkError += (s, e) => Console.WriteLine("Error: " + e.SocketError);
     client.RawMessageRecieved += (s, e) => Console.WriteLine("<< {0}", e.Message);
     client.RawMessageSent += (s, e) => Console.WriteLine(">> {0}", e.Message);
     client.UserMessageRecieved += (s, e) =>
         {
             if (e.PrivateMessage.Message.StartsWith(".join "))
                 client.Channels.Join(e.PrivateMessage.Message.Substring(6));
             else if (e.PrivateMessage.Message.StartsWith(".list "))
             {
                 var channel = client.Channels[e.PrivateMessage.Message.Substring(6)];
                 var list = channel.Users.Select(u => u.Nick).Aggregate((a, b) => a + "," + b);
                 client.SendMessage(list, e.PrivateMessage.User.Nick);
             }
             else if (e.PrivateMessage.Message.StartsWith(".whois "))
                 client.WhoIs(e.PrivateMessage.Message.Substring(7), null);
             else if (e.PrivateMessage.Message.StartsWith(".raw "))
                 client.SendRawMessage(e.PrivateMessage.Message.Substring(5));
             else if (e.PrivateMessage.Message.StartsWith(".mode "))
             {
                 var parts = e.PrivateMessage.Message.Split(' ');
                 client.ChangeMode(parts[1], parts[2]);
             }
             else if (e.PrivateMessage.Message.StartsWith(".topic "))
             {
                 string messageArgs = e.PrivateMessage.Message.Substring(7);
                 if (messageArgs.Contains(" "))
                 {
                     string channel = messageArgs.Substring(0, messageArgs.IndexOf(" "));
                     string topic = messageArgs.Substring(messageArgs.IndexOf(" ") + 1);
                     client.Channels[channel].SetTopic(topic);
                 }
                 else
                 {
                     string channel = messageArgs.Substring(messageArgs.IndexOf("#"));
                     client.GetTopic(channel);
                 }
             }
         };
     client.ChannelMessageRecieved += (s, e) =>
         {
             Console.WriteLine("<{0}> {1}", e.PrivateMessage.User.Nick, e.PrivateMessage.Message);
         };
     client.ChannelTopicReceived += (s, e) =>
         {
             Console.WriteLine("Received topic for channel {0}: {1}", e.Channel.Name, e.Topic);
         };
     client.ConnectAsync();
     while (true) ;
 }
Exemple #3
0
 static void Main(string[] args)
 {
     var client = new IrcClient("irc.freenode.net", new IrcUser("ChatSharp", "ChatSharp"));
     client.NetworkError += (s, e) => Console.WriteLine("Error: " + e.SocketError);
     client.RawMessageRecieved += (s, e) => Console.WriteLine("<< {0}", e.Message);
     client.RawMessageSent += (s, e) => Console.WriteLine(">> {0}", e.Message);
     client.UserMessageRecieved += (s, e) =>
         {
             if (e.PrivateMessage.Message.StartsWith(".join "))
                 client.Channels.Join(e.PrivateMessage.Message.Substring(6));
             else if (e.PrivateMessage.Message.StartsWith(".list "))
             {
                 var channel = client.Channels[e.PrivateMessage.Message.Substring(6)];
                 var list = channel.Users.Select(u => u.Nick).Aggregate((a, b) => a + "," + b);
                 client.SendMessage(list, e.PrivateMessage.User.Nick);
             }
             else if (e.PrivateMessage.Message.StartsWith(".whois "))
                 client.WhoIs(e.PrivateMessage.Message.Substring(7), null);
             else if (e.PrivateMessage.Message.StartsWith(".raw "))
                 client.SendRawMessage(e.PrivateMessage.Message.Substring(5));
             else if (e.PrivateMessage.Message.StartsWith(".bans "))
             {
                 client.GetBanList(e.PrivateMessage.Message.Substring(6), bans =>
                     {
                         client.SendMessage(string.Join(",", bans.Select(b =>
                             string.Format("{0} by {1} at {2}", b.Value, b.Creator, b.CreationTime)
                             ).ToArray()), e.PrivateMessage.User.Nick);
                     });
             }
             else if (e.PrivateMessage.Message.StartsWith(".exceptions "))
             {
                 client.GetExceptionList(e.PrivateMessage.Message.Substring(12), exceptions =>
                 {
                     client.SendMessage(string.Join(",", exceptions.Select(ex =>
                             string.Format("{0} by {1} at {2}", ex.Value, ex.Creator, ex.CreationTime)
                             ).ToArray()), e.PrivateMessage.User.Nick);
                 });
             }
         };
     client.ChannelMessageRecieved += (s, e) =>
         {
             Console.WriteLine("<{0}> {1}", e.PrivateMessage.User.Nick, e.PrivateMessage.Message);
         };
     client.ConnectAsync();
     while (true) ;
 }