Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Net.Sockets;
- namespace Bot
- {
- public class TheBot
- {
- /* Campi di classe */
- string nickname = "Calogero[Bot]";
- Queue<string> Msgs = new Queue<string>();
- private TcpClient client1;
- private NetworkStream stream;
- StreamWriter Writer;
- StreamReader Reader;
- string Channel = "#ffmagazine.ff/prove";
- string[] nickuser = new string[1];
- string password = "ciaociao0";
- void MTD()
- {
- stream = client1.GetStream();
- }
- static void Main(string[] args)
- {
- TheBot Ogg = new TheBot();
- Ogg.Connessione();
- }
- /* Gestione Connessione */
- public void Connessione()
- {
- client1 = new TcpClient();
- client1.Connect("irc.forumfree.it", 6667);
- Console.WriteLine("Connessione in corso... ");
- if (client1.Connected)
- {
- Console.WriteLine("Connesso con successo");
- }
- else
- {
- Console.WriteLine("Errore durante la connessione, riprovo a connettermi...");
- Connessione();
- }
- MTD();
- Writer = new StreamWriter(stream, System.Text.Encoding.GetEncoding("UTF-8"));
- Reader = new StreamReader(stream, System.Text.Encoding.GetEncoding("UTF-8"));
- Send("USER BF750289 * * :CalogeroBot");
- Send("NICK " + nickname);
- Send("PRIVMSG NickServ :IDENTIFY " + password);
- Send("USER BF750289 * * :CalogeroBot");
- Send("PRIVMSG NickServ :IDENTIFY " + password);
- Join(); //passa al metodo di join
- }
- /* Metodo di join su canali */
- public void Join() //canale predefinito
- {
- Send("JOIN " + Channel);
- string saluto = ":Salve a tutti voi di " + Channel + ", a Nicolo` piace grosso :O.";
- Read();//passa al metodo di ricezione
- }
- /* Metodo di invio */
- public void Send(string Msg)
- {
- Writer.WriteLine(Msg);
- Console.WriteLine(">>>" + Msg);
- Writer.Flush();
- }
- /* lettura dei comandi e comando kick */
- public void Read()
- {
- string Message;
- while (true)
- {
- Message = Reader.ReadLine();
- if (Message != null)
- {
- Console.WriteLine("<<< " + Message + ">>>");
- string[] Comandi = Message.Split(':'); //il raw viene diviso in "", "nick!user@host #chan" e "comando"
- string cnick = Comandi[1];
- string[] rnick = cnick.Split(' '); //divisione in "nick!user@host" e "#chan"
- string nickn = rnick[0];
- string[] nk = nickn.Split('!');
- string RequesterNick = nk[0];
- if (Comandi.Length > 2)
- {
- string comando = Comandi[2]; //"comando" viene acquisito da una string nel formato "%comando nick parametri";
- string[] Command = comando.Split(new char[] { ' ' }, 2); //prende il comando
- if (Command.Length > 1)
- {
- string KickNick = Command[1];
- if (Command[0] == "%oscar")
- {
- Send("PRIVMSG " + Command[1] + " :ciao hai vinto forumfree oscar su ffmagazine saluti ciao xd");
- }
- else
- {
- Read();
- }
- }
- }
- }
- /* Risposta al ping del server */
- string PingRaw = Reader.ReadLine(); //ottiene il raw del ping ( :PING 65468575)
- if (PingRaw != null)
- {
- string[] Answ = PingRaw.Split(':'); //divide il raw in " ", "PING 4564786"
- string Verify = Answ[1]; //Verify ottiene "PING 879688"
- string[] Ping = Verify.Split(new char[] { ' ' }, 2); //si ottiene la seconda parte di Answ, che deve essere PING per attivare la condizione
- if (Ping[0] == "PING")
- {
- Send("PONG " + Ping[1]);
- }
- else
- {
- Read();
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment