Advertisement
Guest User

Untitled

a guest
Jul 25th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 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.Windows.Forms;
  9. using System.Net;
  10. using System.Net.Sockets;
  11. using System.IO;
  12. using System.Threading;
  13. using System.Text.RegularExpressions;
  14. using System.Runtime.InteropServices;
  15. using System.Media;
  16. using System.Diagnostics;
  17.  
  18. namespace TwitchBot
  19. {
  20. public partial class Form1 : Form
  21. {
  22. #region Variables
  23. private static string userName = "madvsbot";
  24. private static string password = " "; //ich weiß das hier das pw rein muss.
  25.  
  26. IrcClient irc = new IrcClient("irc.chat.twitch.tv", 6667, userName, password);
  27. NetworkStream serverStream = default(NetworkStream);
  28. string readData = "";
  29. Thread chatThread;
  30.  
  31. #endregion
  32.  
  33. public Form1()
  34. {
  35. InitializeComponent();
  36. }
  37.  
  38. private void Form1_Load_1(object sender, EventArgs e)
  39. {
  40. irc.joinRoom("madgamingvs");
  41. chatThread = new Thread(getMessage);
  42. chatThread.Start();
  43. }
  44.  
  45. private void Form1_FormClosing(object sender, FormClosingEventArgs e)
  46. {
  47. irc.leaveRoom();
  48. serverStream.Dispose();
  49. chatBox.Clear();
  50. Environment.Exit(0); //Alles beendet sich.
  51. }
  52. private void getMessage()
  53. {
  54. serverStream = irc.tcpClient.GetStream();
  55. int buffsize = 0;
  56. byte[] inStream = new byte[10025];
  57. buffsize = irc.tcpClient.ReceiveBufferSize;
  58. while (true)
  59. {
  60. try
  61. {
  62. readData = irc.readMessage();
  63. msg();
  64. }
  65. catch (Exception e)
  66. {
  67.  
  68. }
  69. }
  70. }
  71.  
  72. private void msg()
  73. {
  74. if (this.InvokeRequired)
  75. this.Invoke(new MethodInvoker(msg));
  76. else
  77. {
  78. string[] separator = new string[] { "#madgamingvs :" };
  79. string[] singlesep = new string[] { ":", "!" };
  80.  
  81. if (readData.Contains("PRIVMSG"))
  82. {
  83. string username = readData.Split(singlesep, StringSplitOptions.None)[1];
  84. string message = readData.Split(separator, StringSplitOptions.None)[1];
  85.  
  86. if (message[0] == '!') commands(username, message);
  87.  
  88. chatBox.Text = chatBox.Text + username + ": " + message + Environment.NewLine;
  89. }
  90. }
  91. }
  92.  
  93. private void commands(string username, string message)
  94. {
  95. string command = message.Split(new[] { ' ', '!' }, StringSplitOptions.None)[1];
  96.  
  97. switch (command.ToLower())
  98. {
  99. case "Whooismad":
  100. irc.sendChatMessage("Mad ...");
  101. break;
  102. case "ichhassees":
  103. irc.sendChatMessage(" wtf ");
  104. break;
  105. default:
  106. break;
  107. }
  108. }
  109.  
  110. }
  111.  
  112. class IrcClient
  113. {
  114. private string userName;
  115. private string channel;
  116.  
  117. public TcpClient tcpClient;
  118. private StreamReader inputStream;
  119. private StreamWriter outputStream;
  120.  
  121. public IrcClient(string ip, int port, string userName, string password)
  122. {
  123. tcpClient = new TcpClient(ip, port);
  124. inputStream = new StreamReader(tcpClient.GetStream());
  125. outputStream = new StreamWriter(tcpClient.GetStream());
  126.  
  127. outputStream.WriteLine("PASS " + password);
  128. outputStream.WriteLine("NICK " + userName);
  129. outputStream.WriteLine("USER " + userName + " 8 * :" + userName);
  130. outputStream.WriteLine("CAP REQ :twitch.tv/membership");
  131. outputStream.WriteLine("CAP REQ :twitch.tv/commands");
  132. outputStream.Flush();
  133. }
  134.  
  135. public void joinRoom(string channel)
  136. {
  137. this.channel = channel;
  138. outputStream.WriteLine("JOIN #" + channel);
  139. outputStream.Flush();
  140. }
  141.  
  142. public void leaveRoom()
  143. {
  144. outputStream.Close();
  145. inputStream.Close();
  146.  
  147. }
  148.  
  149. public void sendIrcMessage(string message)
  150. {
  151. outputStream.WriteLine(message);
  152. outputStream.Flush();
  153. }
  154.  
  155. public void sendChatMessage(string message)
  156. {
  157. sendIrcMessage(":" + userName + "!" + userName + "@" + userName + ".tmi.twitch.tv/PRIVMSG #" + channel + " :" + message);
  158. }
  159.  
  160. public void PingResponce()
  161. {
  162. sendIrcMessage("PONG tmi.twitch.tv\r\n");
  163. }
  164.  
  165. public string readMessage()
  166. {
  167. string message = "";
  168. message = inputStream.ReadLine();
  169. return message;
  170. }
  171. }
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement