/*
* Created by SharpDevelop.
* User: Ken
* Date: 4/3/2010
* Time: 4:24 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System.Net;
using System.Threading;
using System.Net.Sockets;
using System.IO;
using System;
namespace whybotIRC
{
public class Program
{
public static string SERVER = "irc.swiftirc.net"; // this defines the server you want your bot to connect to
private static int PORT = 6667; // you can leave this the same
private static string USER = "USER whybot 8 * whybot"; // replace coolbot with the ident of your bot and coolbot1 with the real name of your bot
private static string NICK = "whybot"; // nickname of your bot
private static string CHANNEL = "#xcpq"; // channel you want your bot to join
public static StreamWriter writer;
public static StreamReader reader;
public static string inputline;
public static bool started;
public static void Main(string[] args)
{
NetworkStream stream; // defines the sockets
TcpClient irc;
try
{
irc = new TcpClient(SERVER, PORT);
stream = irc.GetStream();
reader = new StreamReader(stream);
writer = new StreamWriter(stream);
writer.AutoFlush = true;
// PingSender ping = new PingSender();
// ping.Start(); // pinging the server so your bot doesnt ping out
writer.WriteLine(USER); // sending user information
writer.WriteLine("NICK " + NICK); // sending your nick
writer.WriteLine("JOIN " + CHANNEL); // joining your channel
//writer.WriteLine("PRIVMSG nickserv :id iartare45g");
//Console.WriteLine("PRIVMSG nickserv :id atiawerart0");
while (true)
{
inputline = reader.ReadLine();
Console.WriteLine("TEST: INPUTLINE = " + inputline);
Console.WriteLine(inputline);
if (inputline.Contains("PRIVMSG #xcpq :!test")) // just another command
{
writer.WriteLine("PRIVMSG #xcpq :TEST LOL");
Console.WriteLine("PRIVMSG #xcpq :TEST LOL");
}
else if (inputline.Contains("PRIVMSG #xcpq :!blah"))
{
writer.WriteLine("PRIVMSG #xcpq :SECOND TEST LOL");
Console.WriteLine("PRIVMSG #xcpq :SECOND TEST LOL");
}
else if (inputline.StartsWith("PING"))
{
writer.WriteLine("PONG :{0}", inputline.Substring(inputline.IndexOf(" :") + 2));
Console.WriteLine("PONG :{0}", inputline.Substring(inputline.IndexOf(" :") + 2));
}
//Commands for the bot
// writer.WriteLine("PING :" + SERVER);
// writer.Flush();
// Thread.Sleep(15000);
inputline = null;
}
} catch (Exception e) {
Console.WriteLine("EXCEPTION: " + e.ToString());
//Thread.Sleep(500);
string[] argv = { };
Main(argv);
}
}
// error handling
}
}