Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Net.Sockets;
- using System.IO;
- namespace TwitchBotV._3
- {
- public partial class Program
- {
- TcpClient tcpClient;
- StreamReader reader;
- StreamWriter writer;
- string userName, password, channelName, chatCommandID, ChatUser, chatMessagePrefix;
- int numMessages = 0;
- static void Main(string[] args)
- {
- Program p = new Program();
- System.Console.WriteLine("Please enter channel you would like to join: ");
- p.channelName = Console.ReadLine();
- p.userName = "zykren";
- p.password = File.ReadAllText("password.txt");
- p.chatCommandID = "PRIVMSG";
- p.ChatUser = $":tmi.twitch.tv USERNOTICE {p.channelName}:";
- p.chatMessagePrefix = $":{p.userName}!{p.userName}@{p.userName}.tmi.twitch.tv {p.chatCommandID} #{p.channelName} :";
- p.Reconnect();
- }
- private void Reconnect()
- {
- bool done = false;
- tcpClient = new TcpClient("irc.twitch.tv", 6667);
- reader = new StreamReader(tcpClient.GetStream());
- writer = new StreamWriter(tcpClient.GetStream());
- writer.WriteLine("PASS " + password + Environment.NewLine
- + "NICK " + userName + Environment.NewLine
- + "USER " + userName + "8 *" + userName);
- writer.WriteLine("JOIN #" + channelName);
- writer.Flush();
- Console.WriteLine("\r\nConnecting to: {0}",channelName);
- if (tcpClient.Connected)
- {
- Console.WriteLine("\r\nSuccess! Connected to: {0}", channelName);
- }
- do
- {
- Tick();
- } while (!done);
- }
- void Tick()
- {
- if (!tcpClient.Connected)
- {
- Reconnect();
- Console.WriteLine("\r\n Error! Trying to reconnecting to: {0}", channelName);
- }
- else if (tcpClient.Available > 0 || reader.Peek() >= 0)
- {
- var message = reader.ReadLine();
- var iCollon = message.IndexOf(":", 1);
- if (iCollon > 0)
- {
- var command = message.Substring(1, iCollon);
- if (command.Contains(chatCommandID))
- {
- var iBang = command.IndexOf("!");
- var scape = command.IndexOf(" ");
- if (iBang > 0)
- {
- var speaker = command.Substring(0, iBang);
- var chatMessage = message.Substring(iCollon + 1);
- RecieveMessage(speaker, chatMessage, message);
- }
- }
- else if (command.Contains("USERNOTICE"))
- {
- Console.WriteLine($"USERNOTICE: {message}");
- Console.ReadKey();
- SendMessage($"Resub love <3");
- }
- }
- }
- }
- void RecieveMessage(string speaker, string message, string wholeMessage)
- {
- numMessages++;
- if(numMessages > 100)
- {
- Console.Clear();
- Console.WriteLine("\r\nConnected to: {0}", channelName);
- numMessages = 0;
- }
- Console.WriteLine($"\r\n{speaker}: {message}");
- //Console.WriteLine($"\r\n{wholeMessage}");
- if (message.StartsWith("!hi"))
- {
- SendMessage($"Hello, {speaker}");
- }
- if (speaker == "twitchnotify")
- {
- SendMessage($"Sub Love <3");
- }
- }
- void SendMessage(string message)
- {
- writer.WriteLine($"{chatMessagePrefix}{message}");
- writer.Flush();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement