Advertisement
Guest User

Untitled

a guest
Aug 1st, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.90 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Configuration;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading;
  10. using System.Windows.Forms;
  11. using Meebey.SmartIrc4net;
  12.  
  13. namespace sharpbot
  14. {
  15. public partial class sbMain : Form
  16. {
  17. static IrcClient client = new IrcClient();
  18. string botnick;
  19. string botname;
  20. string nspass;
  21. string botuser;
  22. string trigger;
  23. int usermode = 0;
  24. string[] channels;
  25.  
  26. Thread listenThread = new Thread(Listen);
  27.  
  28. delegate void DisplayIncomingLinesCallback(string text);
  29. delegate void DisconnectedCallback(object sender, EventArgs e);
  30.  
  31. public sbMain()
  32. {
  33. InitializeComponent();
  34. client.OnConnected = new EventHandler(this.Connected);
  35. client.OnRegistered = new EventHandler(client_OnRegistered);
  36. client.SupportNonRfc = true;
  37. client.CtcpVersion = "sharpclient";
  38.  
  39. HostBox.Text = Properties.Settings.Default.hostname;
  40. PortBox.Text = Properties.Settings.Default.port;
  41. userBox.Text = Properties.Settings.Default.userName;
  42. rnBox.Text = Properties.Settings.Default.realName;
  43. NickBox.Text = Properties.Settings.Default.botNick;
  44. passBox.Text = Properties.Settings.Default.password;
  45. ChannelBox.Text = Properties.Settings.Default.autoChans;
  46. cbxTrigger.SelectedIndex = Properties.Settings.Default.trigger;
  47. }
  48.  
  49. private void Connected(object sender, EventArgs e)
  50. {
  51. btnConnect.Enabled = false;
  52. client.Login(botnick, botname, usermode, botuser, "");
  53. bgwListen.RunWorkerAsync();
  54. }
  55.  
  56. static void Listen()
  57. {
  58. client.Listen();
  59. }
  60.  
  61. private void btnConnect_Click(object sender, EventArgs e)
  62. {
  63. if (!client.IsConnected)
  64. {
  65. consoleOut.Text = String.Format("Connecting to {0} as {1}, password: {2}\r\n",
  66. HostBox.Text, botnick, nspass);
  67. try
  68. {
  69. client.Connect(HostBox.Text, Convert.ToInt32(PortBox.Text));
  70. }
  71. catch (CouldNotConnectException)
  72. {
  73. consoleOut.AppendText("Could not connect. Check your connection and try again in a moment.");
  74. }
  75. }
  76. }
  77.  
  78. private void ReadLine(object sender, ReadLineEventArgs e)
  79. {
  80. this.DisplayIncomingLines(e.Line);
  81. }
  82.  
  83. private void DisplayIncomingLines(string line)
  84. {
  85. if (this.consoleOut.InvokeRequired)
  86. {
  87. DisplayIncomingLinesCallback d = new DisplayIncomingLinesCallback(DisplayIncomingLines);
  88. this.Invoke(d, new object[] { line });
  89. }
  90. else
  91. {
  92. this.consoleOut.AppendText(line "\r\n");
  93. parseCommands(line);
  94. }
  95. }
  96.  
  97. private void parseCommands(string line)
  98. {
  99. if (line.StartsWith(trigger))
  100. {
  101. consoleOut.AppendText("!! TRIGGER DETECTED !!");
  102. }
  103. }
  104.  
  105. private void passBox_TextChanged(object sender, EventArgs e)
  106. {
  107. nspass = passBox.Text;
  108. }
  109.  
  110. private void NickBox_TextChanged(object sender, EventArgs e)
  111. {
  112. botnick = NickBox.Text;
  113. }
  114.  
  115. private void rnBox_TextChanged(object sender, EventArgs e)
  116. {
  117. botname = rnBox.Text;
  118. }
  119.  
  120. private void userBox_TextChanged(object sender, EventArgs e)
  121. {
  122. botuser = userBox.Text;
  123. }
  124.  
  125. private void usermodeIW_CheckedChanged(object sender, EventArgs e)
  126. {
  127. usermode = 0;
  128. }
  129.  
  130. private void usermodeI_CheckedChanged(object sender, EventArgs e)
  131. {
  132. usermode = 4;
  133. }
  134.  
  135. private void ChannelBox_TextChanged(object sender, EventArgs e)
  136. {
  137. char[] separator = { '\r', '\n' };
  138. channels = ChannelBox.Text.Split(separator);
  139. }
  140.  
  141. private void autoAcceptInvites_CheckedChanged(object sender, EventArgs e)
  142. {
  143. client.AutoJoinOnInvite = true;
  144. }
  145.  
  146. private void client_OnRegistered(object sender, EventArgs e)
  147. {
  148. if (nspass != String.Empty)
  149. {
  150. client.RfcPrivmsg("NickServ", "IDENTIFY " nspass);
  151. }
  152. client.RfcJoin(channels);
  153. }
  154.  
  155. private void btnQuit_Click(object sender, EventArgs e)
  156. {
  157. if (client.IsConnected)
  158. {
  159. client.RfcQuit("Shutdown requested.");
  160. client.Disconnect();
  161. }
  162.  
  163. Properties.Settings.Default.autoChans = ChannelBox.Text;
  164. Properties.Settings.Default.botNick = NickBox.Text;
  165. Properties.Settings.Default.hostname = HostBox.Text;
  166. Properties.Settings.Default.password = passBox.Text;
  167. Properties.Settings.Default.port = PortBox.Text;
  168. Properties.Settings.Default.realName = rnBox.Text;
  169. Properties.Settings.Default.userName = userBox.Text;
  170. Properties.Settings.Default.trigger = cbxTrigger.SelectedIndex;
  171. Properties.Settings.Default.Save();
  172.  
  173. Application.Exit();
  174. }
  175.  
  176. private void bgwListen_DoWork(object sender, DoWorkEventArgs e)
  177. {
  178. client.OnReadLine = new ReadLineEventHandler(ReadLine);
  179. client.Listen();
  180. }
  181.  
  182. private void cbxTrigger_SelectedIndexChanged(object sender, EventArgs e)
  183. {
  184. trigger = cbxTrigger.Text;
  185. }
  186. }
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement