Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Net.Sockets;
- using System.Threading;
- using System.Threading.Tasks;
- namespace KonekoIRC
- {
- class KonekoIRC
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Initiating Walter C Dornez...");
- IRC IrcConnection = new IRC();
- IrcConnection.Connect("irc.cuff-link.me", 6667);
- string line;
- Console.WriteLine("Enter one or more lines of text (press CTRL+Z to exit):");
- Console.WriteLine();
- do
- {
- Console.Write(" ");
- line = Console.ReadLine();
- if (line != null)
- Console.WriteLine(" " + line);
- IrcConnection.IrcWriter.WriteLine("" + line);
- IrcConnection.IrcWriter.Flush();
- } while (line != null);
- }
- }
- class IRC
- {
- #region Private Variables
- private string IrcServer;
- private int IrcPort;
- private TcpClient IrcConnection;
- private Stream IrcStream;
- private StreamReader IrcReader;
- public StreamWriter IrcWriter;
- private string IrcCommand;
- private Int16 IrcPingCount;
- private bool IrcChannelConnected;
- #endregion
- public async void Connect(string argServer, int argPort)
- {
- Console.WriteLine("Attempting Connection...");
- this.IrcServer = argServer;
- this.IrcPort = argPort;
- this.IrcConnection = new TcpClient(this.IrcServer, this.IrcPort);
- this.IrcStream = this.IrcConnection.GetStream();
- this.IrcReader = new StreamReader(this.IrcStream);
- this.IrcWriter = new StreamWriter(this.IrcStream);
- Console.WriteLine("Connected!");
- this.IrcWriter.WriteLine(String.Format("USER {0} {1} * :{2}", "Walter", "0", "Walter"));
- this.IrcWriter.Flush();
- this.IrcWriter.WriteLine(String.Format("NICK {0}", "WalterCDornez"));
- this.IrcWriter.Flush();
- Console.WriteLine("Authenticated!");
- // await Task.Run(() => { Listener(); });
- await IrcStreamReaderAsync(IrcReader);
- // Listener();
- }
- public async Task IrcStreamReaderAsync(StreamReader argIrcReader)
- {
- while ((IrcCommand = await argIrcReader.ReadLineAsync()) != null)
- {
- Console.WriteLine(IrcCommand);
- if (IrcCommand.Contains("PING"))
- {
- string[] IrcCommandArray = new string[IrcCommand.Split(' ').Length];
- IrcCommandArray = IrcCommand.Split(' ');
- string IrcPong = IrcCommandArray[1].TrimStart(':');
- this.IrcWriter.WriteLine(String.Format("PONG {0}", IrcPong));
- this.IrcWriter.Flush();
- IrcPingCount++;
- Console.WriteLine("PONG: " + IrcPingCount.ToString());
- }
- if (IrcPingCount >= 1 & IrcChannelConnected == false)
- {
- Thread.Sleep(5000);
- Console.WriteLine("Attempting Channel Connection...");
- this.IrcWriter.WriteLine(String.Format("JOIN {0}", "#DepravityManor"));
- this.IrcWriter.Flush();
- IrcChannelConnected = true;
- this.IrcWriter.WriteLine("MODE WalterCDornez +B");
- this.IrcWriter.Flush();
- }
- }
- }
- private void Listener(){
- while(true){
- while ((IrcCommand = this.IrcReader.ReadLine()) != null)
- {
- if (IrcPingCount >= 1 & IrcChannelConnected == false)
- {
- Console.WriteLine("Attempting Channel Connection...");
- this.IrcWriter.WriteLine(String.Format("JOIN {0}", "#DepravityManor"));
- this.IrcWriter.Flush();
- IrcChannelConnected = true;
- this.IrcWriter.WriteLine("MODE WalterCDornez +B");
- this.IrcWriter.Flush();
- }
- Console.WriteLine(IrcCommand);
- if(IrcCommand.Contains("PING")){
- string[] IrcCommandArray = new string[IrcCommand.Split(' ').Length];
- IrcCommandArray = IrcCommand.Split(' ');
- string IrcPong = IrcCommandArray[1].TrimStart(':');
- this.IrcWriter.WriteLine(String.Format("PONG {0}", IrcPong));
- this.IrcWriter.Flush();
- IrcPingCount++;
- Console.WriteLine("PONG: " + IrcPingCount.ToString());
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement