Advertisement
Guest User

Untitled

a guest
Oct 1st, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.26 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Net.Sockets;
  10. using System.IO;
  11.  
  12. namespace TwitchBotV._3
  13. {
  14.     public partial class Program
  15.     {
  16.         TcpClient tcpClient;
  17.         StreamReader reader;
  18.         StreamWriter writer;
  19.         string userName, password, channelName, chatCommandID, ChatUser, chatMessagePrefix;
  20.         int numMessages = 0;
  21.         static void Main(string[] args)
  22.         {
  23.             Program p = new Program();
  24.  
  25.             System.Console.WriteLine("Please enter channel you would like to join: ");
  26.             p.channelName = Console.ReadLine();
  27.  
  28.             p.userName = "zykren";
  29.             p.password = File.ReadAllText("password.txt");
  30.             p.chatCommandID = "PRIVMSG";
  31.             p.ChatUser = $":tmi.twitch.tv USERNOTICE {p.channelName}:";
  32.             p.chatMessagePrefix = $":{p.userName}!{p.userName}@{p.userName}.tmi.twitch.tv {p.chatCommandID} #{p.channelName} :";
  33.             p.Reconnect();
  34.         }
  35.  
  36.         private void Reconnect()
  37.         {
  38.             bool done = false;
  39.             tcpClient = new TcpClient("irc.twitch.tv", 6667);
  40.             reader = new StreamReader(tcpClient.GetStream());
  41.             writer = new StreamWriter(tcpClient.GetStream());
  42.  
  43.             writer.WriteLine("PASS " + password + Environment.NewLine
  44.                 + "NICK " + userName + Environment.NewLine
  45.                 + "USER " + userName + "8 *" + userName);
  46.             writer.WriteLine("JOIN #" + channelName);
  47.             writer.Flush();
  48.             Console.WriteLine("\r\nConnecting to: {0}",channelName);
  49.             if (tcpClient.Connected)
  50.             {
  51.                 Console.WriteLine("\r\nSuccess! Connected to: {0}", channelName);
  52.             }
  53.             do
  54.             {
  55.                 Tick();
  56.             } while (!done);
  57.         }
  58.  
  59.         void Tick()
  60.         {
  61.             if (!tcpClient.Connected)
  62.             {
  63.                 Reconnect();
  64.                 Console.WriteLine("\r\n Error! Trying to reconnecting to: {0}", channelName);
  65.             }
  66.             else if (tcpClient.Available > 0 || reader.Peek() >= 0)
  67.             {                      
  68.                 var message = reader.ReadLine();
  69.                 var iCollon = message.IndexOf(":", 1);
  70.                
  71.                 if (iCollon > 0)
  72.                 {
  73.                     var command = message.Substring(1, iCollon);
  74.                     if (command.Contains(chatCommandID))
  75.                     {
  76.                         var iBang = command.IndexOf("!");
  77.                         var scape = command.IndexOf(" ");
  78.                         if (iBang > 0)
  79.                         {
  80.                             var speaker = command.Substring(0, iBang);
  81.                             var chatMessage = message.Substring(iCollon + 1);
  82.                             RecieveMessage(speaker, chatMessage, message);
  83.                         }
  84.                     }
  85.                     else if (command.Contains("USERNOTICE"))
  86.                     {
  87.                         Console.WriteLine($"USERNOTICE: {message}");
  88.                         Console.ReadKey();
  89.                         SendMessage($"Resub love <3");
  90.                     }
  91.  
  92.                 }
  93.                
  94.             }
  95.         }
  96.  
  97.         void RecieveMessage(string speaker, string message, string wholeMessage)
  98.         {
  99.             numMessages++;
  100.             if(numMessages > 100)
  101.             {            
  102.                 Console.Clear();
  103.                 Console.WriteLine("\r\nConnected to: {0}", channelName);
  104.                 numMessages = 0;
  105.             }
  106.             Console.WriteLine($"\r\n{speaker}: {message}");
  107.             //Console.WriteLine($"\r\n{wholeMessage}");
  108.             if (message.StartsWith("!hi"))
  109.             {
  110.                 SendMessage($"Hello, {speaker}");              
  111.             }
  112.             if (speaker == "twitchnotify")
  113.             {
  114.                 SendMessage($"Sub Love <3");
  115.             }
  116.         }
  117.  
  118.         void SendMessage(string message)
  119.         {
  120.             writer.WriteLine($"{chatMessagePrefix}{message}");
  121.             writer.Flush();
  122.         }
  123.     }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement