Advertisement
Guest User

Untitled

a guest
Dec 9th, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 74.73 KB | None | 0 0
  1. Imports System.Net.Sockets
  2. Imports System.Text
  3. Imports System.Text.RegularExpressions
  4. Imports System.IO
  5. Imports MySql.Data.MySqlClient
  6.  
  7. Public Class EggDropBotClasses
  8. 'Socket Stuff
  9. Public tnSocket As Socket
  10. Public SendBytes As [Byte]()
  11.  
  12. 'Class textbox to assign text to send back to
  13. Public TheTextBox As TextBox
  14.  
  15. 'BOT SPECIFIC INFO
  16. Public ThreadID As Integer
  17. Public LocalFirstSW As Boolean
  18. Public ChannelJoinSW As Boolean
  19. Public ExitSW As Boolean
  20. Public BotName As String
  21. Public cmdPrefix As Char
  22. Public Record As String
  23. Public MasterAuth As Boolean
  24. Public Master As Boolean = False
  25. Public BotID As Long
  26. Public LowerLevel As Boolean = False
  27. Public ServerName As String
  28. Public rndNum As New Random(System.DateTime.Now.Millisecond)
  29.  
  30.  
  31. 'Uni Class calls
  32. Public AclClass As New Acl
  33. Public ChannelCommandClass As New ChannelCommand
  34. Public MathChannelClass As New MathCheckClass
  35.  
  36. 'CLASS SPECIFIC FUNCS
  37.  
  38. Public Function ConnectBot(ByVal threadID) As Object
  39. 'FUNCTION NAME:ConnectBot
  40. 'INPUT :Thread ID as object
  41. 'EXISTANCE :Main Engine
  42. 'OUTPUT :Anything
  43.  
  44. 'INSTANCE CLASS CHILD OBJECTS
  45. ChannelCommandClass.CmdPrefix = cmdPrefix
  46. MathChannelClass.cmdPrefix = cmdPrefix
  47. threadID = My.Settings.ThreadID
  48.  
  49. 'DECLARE SOCKET VARS
  50. Dim RecvString As String = String.Empty
  51. Dim NumBytes As Integer = 0
  52. Dim RecvBytes(255) As [Byte]
  53. Dim nickname, ident, hostname, command2, channel, message
  54. Dim regexp As String
  55.  
  56. ReconnectAgain:
  57.  
  58. message = ""
  59. RecvString = ""
  60. tnSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
  61.  
  62. Try
  63. tnSocket.Connect(currServer, PPort)
  64. Do While tnSocket.Connected
  65.  
  66. restartconn:
  67. Do
  68. If NumBytes < 256 Then
  69. NumBytes = tnSocket.Receive(RecvBytes, RecvBytes.Length, 0)
  70. RecvString = RecvString + Encoding.ASCII.GetString(RecvBytes, 0, NumBytes)
  71. TheTextBox.AppendText(RecvString)
  72. Else
  73. NumBytes = 0 'RESET
  74. End If
  75. Loop While NumBytes = 256
  76.  
  77. 'WE NOW HAVE RECV DATA
  78. While Not RecvString = ""
  79. 'DETERMINE IF WE HAVE TO QUIT OR EXIT BY SERVER OR CMD
  80. If Quit(RecvString, threadID) = True Then
  81. Exit While
  82. End If
  83.  
  84. 'SERVER PING
  85. If PingServer(RecvString) Then
  86. End If
  87.  
  88. 'SERVER SEND 004 WE NOW HAVE CONNECTED TO IT
  89. If InStr(RecvString, "004") > 0 And ConnectedToServer = False Then
  90. ConnectedToServer = True
  91. End If
  92.  
  93. 'DETERMINE IF CONNECTED
  94. If ConnectedToServer Then
  95.  
  96. '#############################
  97. '#DETERMINE Notice #
  98. '#############################
  99.  
  100. regexp = "^\:(?<nickname>.+?)\!(?<ident>.+?)\@(?<hostname>.+?) NOTICE (?<user>.+) \:(?<message>.+)."
  101. Debug.Print(RecvString)
  102.  
  103. If (IrcInputCheck(RecvString, regexp)) Then
  104. Dim re As New Regex(regexp)
  105. Dim user As String
  106.  
  107.  
  108. 'CHAT GRABBER
  109. mt = re.Match(RecvString)
  110. nickname = mt.Groups("nickname").ToString
  111. ident = mt.Groups("ident").ToString
  112. hostname = mt.Groups("hostname").ToString
  113. message = mt.Groups("message").ToString
  114. user = mt.Groups("user").ToString
  115.  
  116. 'THIS WILL NEED TO BE FIXED BETTER
  117. If InStr(nickname, "Serv") > 0 Or InStr(nickname, "serv") > 0 Then
  118. RecvString = ""
  119. Else
  120. 'SET PASS NOTICE
  121. If RegXPChecker("^set pass:(?<item>.+) (?<item2>.+)", message) Then
  122. Dim item, item2 As String
  123. re = New Regex("^set pass:(?<item>.+) (?<item2>.+)")
  124. mt = re.Match(message)
  125. item = mt.Groups("item").ToString
  126. item2 = mt.Groups("item2").ToString
  127. If item = "" Or item2 = "" Then
  128. SendInfo("NOTICE " & nickname & " :Invalid syntax " & item & "." & vbCrLf, SendBytes, tnSocket)
  129. Else
  130. item2 = GenerateHash(item2)
  131. Debug.Print(item2)
  132. item2 = QueryClean(item2)
  133. item = QueryClean(item)
  134. SQL = "UPDATE tblauth SET Password=""" & QueryClean(item2) & """ WHERE BotID=" & BotID & " AND UserName=""" & QueryClean(item) & """"
  135.  
  136. If UpdateRecords(SQL, "Set Pass Hash") = False Then
  137. Return False
  138. End If
  139. End If
  140. End If
  141.  
  142. 'AUTH NOTICE
  143. If RegXPChecker("^auth:(?<item>.+)", message) Then
  144. Dim item As String
  145. re = New Regex("^auth:(?<item>.+)")
  146. mt = re.Match(message)
  147. item = mt.Groups("item").ToString
  148.  
  149. SQL = "SELECT UserName FROM tblAuth Where BotID=" & BotID & " AND UserName=""" & QueryClean(nickname) & """"
  150. If CheckIfUserExists(nickname, SQL, BotID) Then
  151. item = GenerateHash(item)
  152. Debug.Print(item)
  153.  
  154. If AclClass.PasswordVerification(nickname, BotID, item) Then
  155. SendInfo("NOTICE " & nickname & " :Authenticated" & vbCrLf, SendBytes, tnSocket)
  156. nickname = QueryClean(nickname)
  157. SQL = "UPDATE tblauth SET IsAuthed=1 WHERE botID=" & BotID & " AND UserName=""" & QueryClean(nickname) & """"
  158. If UpdateRecords(SQL, "Auth") Then
  159.  
  160. End If
  161. Else
  162. SendInfo("NOTICE " & nickname & " :Invalid password" & vbCrLf, SendBytes, tnSocket)
  163. End If
  164. Else
  165. Return True
  166. End If
  167. End If
  168. End If
  169. 'Check if user is in user list
  170. RecvString = ""
  171. End If
  172.  
  173. '#####################################
  174. '#DETERMINE Private Message to bot #
  175. '#####################################
  176.  
  177. ':MrTwig!n=Jaw@unaffiliated/jawster NICK :Twig-Away
  178. ':ioudas!n=gc@cpe-74-75-90-244.maine.res.rr.com PRIVMSG assbott2 :hey
  179. regexp = "^\:(?<nickname>.+?)\!(?<ident>.+?)\@(?<hostname>.+?) PRIVMSG (?<user>.+?) \:(?<message>.+)."
  180.  
  181. If (IrcInputCheck(RecvString, regexp)) Then
  182. Dim re As New Regex(regexp)
  183. Dim user As String
  184.  
  185. mt = re.Match(RecvString)
  186. nickname = mt.Groups("nickname").ToString
  187. ident = mt.Groups("ident").ToString
  188. hostname = mt.Groups("hostname").ToString
  189. channel = "#" & mt.Groups("channel").ToString
  190. message = mt.Groups("message").ToString
  191. user = mt.Groups("user").ToString
  192.  
  193. If InStr(user, "#") > 0 Then
  194. Else
  195. If InStr(message, "PING") > 0 Or InStr(message, "TIME") > 0 Or InStr(message, "VERSION") > 0 Then
  196.  
  197. If CtcpReply(message, nickname) Then
  198. End If
  199. Else
  200. RecvString = "PING"
  201. End If
  202. End If
  203. End If
  204.  
  205. '#####################################
  206. '#DETERMINE Chan/Server Kick Commands#
  207. '#####################################
  208.  
  209. regexp = "^\:(?<nickname>.+?)\!(?<ident>.+?)\@(?<hostname>.+?) (?<command>.+?) #(?<channel>.+?) (?<userkicked>.+) \:(?<message>.+)."
  210. If IrcInputCheck(RecvString, regexp) Then
  211. Dim re As New Regex(regexp)
  212.  
  213. mt = re.Match(RecvString)
  214. nickname = mt.Groups("nickname").ToString
  215. ident = mt.Groups("ident").ToString
  216. hostname = mt.Groups("hostname").ToString
  217. command2 = mt.Groups("command").ToString
  218. channel = "#" & mt.Groups("channel").ToString
  219. message = mt.Groups("message").ToString
  220. Dim botProtectRejoin As New BotProtection
  221. Select Case command2
  222. Case "KICK"
  223. 'run kick code
  224.  
  225. If (botProtectRejoin.DetermineChannelJoin(BotID, channel)) Then
  226. SendInfo("JOIN " & channel, SendBytes, tnSocket)
  227. End If
  228. 'RecvString = ""
  229.  
  230. Case "MODE"
  231. 'wee
  232. 'Mode protection goes here
  233. If botProtectRejoin.DetectBanAgainstMe(channel, True, tnSocket, SendBytes, "greg") Then
  234.  
  235. End If
  236. End Select
  237.  
  238. If (AclClass.IsMaster(nickname, BotID)) Then
  239. Master = True
  240. Else
  241. Master = False
  242. End If
  243. End If
  244.  
  245. '####################################
  246. '#DETERMINE Chan/Server Commands #
  247. '####################################
  248.  
  249. regexp = "^\:(?<nickname>.+?)\!(?<ident>.+?)\@(?<hostname>.+?) (?<command>.+?) #(?<channel>.+?) \:(?<message>.+)."
  250. If (IrcInputCheck(RecvString, regexp)) Then
  251. Dim re As New Regex(regexp)
  252. mt = re.Match(RecvString)
  253. nickname = mt.Groups("nickname").ToString
  254. ident = mt.Groups("ident").ToString
  255. hostname = mt.Groups("hostname").ToString
  256. command2 = mt.Groups("command").ToString
  257. channel = "#" & mt.Groups("channel").ToString
  258. message = mt.Groups("message").ToString
  259.  
  260. If (AclClass.IsMaster(nickname, BotID)) Then
  261. Master = True
  262. Else
  263. Master = False
  264. End If
  265.  
  266. 'RECONNECT COMMAND.
  267. If message = cmdPrefix & "reconnect" Then
  268. LocalFirstSW = True
  269. ChannelJoinSW = True
  270. tnSocket.Close()
  271. ConnectedToServer = False
  272. GoTo ReconnectAgain
  273. End If
  274.  
  275. 'If :gregc!n=gc@cpe-74-75-90-244.maine.res.rr.com QUIT :
  276. If command2 = "QUIT" Then
  277. If AclClass.IsUserAuthed(nickname, BotID, channel) Then
  278. SQL = "UPDATE tblauth SET IsAuthed=0 WHERE BotID=" & BotID & " AND UserName=""" & QueryClean(nickname) & """"
  279. If UpdateRecords(SQL, "QUIT AUTH") Then
  280. End If
  281. Else
  282. End If
  283. End If
  284.  
  285. 'DB INSERT OF RCVD DATA TO USER CHAT TABLE
  286. If Record Then
  287. If Not InStr(message, cmdPrefix & "last") > 0 Then
  288. If InStr(message, cmdPrefix & "seen") > 0 Then
  289. Else
  290. If RecordInsert(QueryClean(channel), QueryClean(nickname), QueryClean(message), BotID, ServerName) = False Then
  291. End If
  292. End If
  293. End If
  294. End If
  295.  
  296. 'Channel Text
  297. If (ChannelGrab(message, channel, nickname)) Then
  298. RecvString = ""
  299. message = ""
  300. Exit While
  301. End If
  302.  
  303. 'CTCP CHAN PING REPLY
  304. If CtcpReply(message, nickname) Then
  305. RecvString = ""
  306. Exit While
  307. End If
  308.  
  309.  
  310. If Len(message) > 0 Then
  311. RecvString = ""
  312. Exit While
  313. End If
  314. End If
  315. End If
  316.  
  317. '####################################
  318. '#On server channel commands #
  319. '####################################
  320.  
  321. 'PAST CHANNEL COMMANDS Server commands go here
  322. If RegXPChecker("\:.+ 433 \* .+ \:.+", RecvString) Then
  323. Dim newnick As String
  324. newnick = "testbot"
  325. SendInfo("NICK " & newnick & vbCrLf, SendBytes, tnSocket)
  326. End If
  327.  
  328. Debug.Print(RecvString)
  329.  
  330. If InStr(RecvString, "376") Then
  331. Debug.Print("")
  332. End If
  333.  
  334.  
  335. If RegXPChecker("\:.+ 376 .+", RecvString) Then
  336. InitialJoin()
  337. End If
  338. ':irc.mad-season.com 376 assbott2 :End of /MOTD command.
  339. 'ASSIGN SERVER NICK
  340. 'ALSO HANDLES CHANNEL JOINS
  341. SetNickOnServer(tnSocket)
  342.  
  343. RecvString = ""
  344. End While
  345. Loop
  346.  
  347. Catch myerror As Exception
  348. 'NEED A BETTER METHOD FOR HANDLING
  349. Debug.Print(myerror.GetHashCode())
  350. Debug.Print(myerror.Message)
  351. Debug.Print(myerror.ToString)
  352.  
  353. Dim thetime As String = Format(Today, "yyyy/MM/dd")
  354. Dim errorHandleStr As String = QueryClean(myerror.ToString)
  355.  
  356. SQL = "INSERT INTO tblerrorlog(botid, ErrorNumber, ErrorMessage,HappenedWhen,BotName) VALUES(" & BotID & ", """ & errorHandleStr & """, """ & myerror.Message & " " & message & """,""" & thetime & """,""" & BotName & """)"
  357. Try
  358. If InsertRecords(SQL, "ErrorLog") Then
  359.  
  360. End If
  361.  
  362. Catch ex As Exception
  363.  
  364. End Try
  365.  
  366. 'WORD BASED EXCEPTION HANDLING
  367. Debug.Print(myerror.Message)
  368.  
  369. Select Case myerror.Message
  370. Case "A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied"
  371. GoTo cleanup
  372. Case "An established connection was aborted by the software in your host machine"
  373. GoTo cleanup
  374. Case "Cannot access a disposed object. Object name: 'System.Net.Sockets.Socket'."
  375. GoTo cleanup
  376. Case "An existing connection was forcibly closed by the remote host"
  377. GoTo cleanup
  378. End Select
  379.  
  380. 'HASH CODE SEEMS TO BE THE ONLY WAY TO GET UNIQUE ERROR NUMS.
  381. 'Too many api calls crash weird.
  382.  
  383. Select Case myerror.GetHashCode()
  384. Case 1997173
  385. 'GoTo cleanup
  386. End Select
  387.  
  388. Command = Nothing
  389. RecvString = Nothing
  390. GoTo restartconn
  391. End Try
  392.  
  393. 'Cleanup
  394. 'CLEAN UP ALL VARS HERE
  395. cleanup:
  396. tnSocket.Close()
  397. tnSocket = Nothing
  398. Command = Nothing
  399. RecvString = Nothing
  400. ThreadKillID = 9999
  401. Return "Dead"
  402. End Function
  403.  
  404. Private Function ChannelGrab(ByVal Message As String, ByVal channel As String, ByVal nickname As String) As Boolean
  405. 'FUNCTION NAME:ChannelGrab
  406. 'INPUT :Message, Channel, Nick
  407. 'EXISTANCE :Grabs channel text and determines if command has been issued
  408. 'OUTPUT :true or false of a command is issues
  409. 'PP Note :This also can do many things such as send to channels etc.
  410.  
  411. Dim re As New Regex("")
  412. Dim mt As Match
  413. Dim item, item2, result
  414.  
  415. '###################################
  416. '#DETERMINE USER LEVEL AND AUTH #
  417. '###################################
  418.  
  419. Dim authed As Boolean = False
  420.  
  421. If AclClass.IsUserAuthed(nickname, BotID, channel) Then
  422. authed = True
  423. End If
  424.  
  425. 'TEXT CMD SPECS
  426. Debug.Print("CHANNEL GRAB THREAD INFO")
  427. Debug.Print(ThreadID)
  428. Debug.Print(CurrBotName)
  429. Debug.Print(Message)
  430.  
  431. 'DETERMINE COMMAND LEVEL
  432. If Master = True Or Master = False And authed = True Or authed = False Then
  433.  
  434. If ChannelCommandClass.CheckCommandInChannel(re, Message, tnSocket, SendBytes, BotID, BotName, channel) = True Then
  435. Return True
  436. End If
  437.  
  438. If MathChannelClass.CheckMathChannel(re, Message, tnSocket, SendBytes, BotID, BotName, channel) Then
  439. Return True
  440. End If
  441.  
  442.  
  443. If RegXPChecker("^" & cmdPrefix & "set pass (?<item>.+)", Message) Then
  444. re = New Regex("^" & cmdPrefix & "set pass (?<item>.+)")
  445. mt = re.Match(Message)
  446. item = mt.Groups("item").ToString
  447.  
  448. If item = "" Then
  449. SendInfo("PRIVMSG " & channel & " :Please include a username when setting a password." & item & vbCrLf, SendBytes, tnSocket)
  450. Else
  451. SendInfo("NOTICE " & nickname & " :Please notice me set pass:UserName PasswordHere for user " & item & "." & vbCrLf, SendBytes, tnSocket)
  452. End If
  453.  
  454. Return True
  455. End If
  456.  
  457. If RegXPChecker("^" & cmdPrefix & "ident$", Message) Then
  458. re = New Regex("^" & cmdPrefix & "ident")
  459. mt = re.Match(Message)
  460. item = mt.Groups("item").ToString
  461.  
  462. Dim serverip As String
  463. serverip = GetField("SELECT ServerIP FROM tblserverlist WHERE BotID=" & BotID & " AND ServerIP=""" & currServer & """", "ServerIP", "GetIP")
  464. Debug.Print(address.ToString)
  465.  
  466. If serverip = "" Then
  467. Return False
  468. End If
  469.  
  470. Dim reply As String = GetField("SELECT Ident FROM tblserverlist WHERE BotID=" & BotID & " AND ServerIP=""" & currServer & """", "Ident", "Ident")
  471.  
  472. If reply = "" Then
  473. Return False
  474. End If
  475.  
  476. SendInfo(reply, SendBytes, tnSocket)
  477. Return True
  478. End If
  479.  
  480. If RegXPChecker("^" & cmdPrefix & "sha (?<item>.+)", Message) Then
  481. re = New Regex("^" & cmdPrefix & "sha (?<item>.+)")
  482. mt = re.Match(Message)
  483. item = mt.Groups("item").ToString
  484.  
  485. If item = "" Then
  486. SendInfo("PRIVMSG " & channel & " :Please include a username when setting a password." & item & vbCrLf, SendBytes, tnSocket)
  487. Else
  488. SendInfo("PRIVMSG " & channel & " :" & GenerateHash(item) & vbCrLf, SendBytes, tnSocket)
  489. End If
  490.  
  491. Return True
  492. End If
  493.  
  494. If RegXPChecker("^" & cmdPrefix & "nick (?<item>.+)", Message) Then
  495. re = New Regex("^" & cmdPrefix & "nick (?<item>.+)")
  496. mt = re.Match(Message)
  497. item = mt.Groups("item").ToString
  498. SendInfo("NICK " & item, SendBytes, tnSocket)
  499. Return True
  500. End If
  501.  
  502. If RegXPChecker("^" & cmdPrefix & "delserver (?<item>.+?)", Message) Then
  503. re = New Regex("^" & cmdPrefix & "delserver (?<item>.+?)")
  504. mt = re.Match(Message)
  505. item = mt.Groups("item").ToString
  506. SendInfo("PRIVMSG " & channel & " :Deleted server" & item & vbCrLf, SendBytes, tnSocket)
  507. Return True
  508. End If
  509.  
  510. If RegXPChecker("^" & cmdPrefix & "addserver (?<item>.+)", Message) Then
  511. re = New Regex("^" & cmdPrefix & "addserver (?<item>.+)")
  512. mt = re.Match(Message)
  513. item = mt.Groups("item").ToString
  514.  
  515. If AddServer(item, GetBotID(BotName), "6667", 1, 1) Then
  516.  
  517. End If
  518.  
  519. SendInfo("PRIVMSG " & channel & " :Added server " & item & vbCrLf, SendBytes, tnSocket)
  520. Return True
  521. End If
  522.  
  523. If RegXPChecker("^http://(?<site>.+)", Message) Then
  524. re = New Regex("^http://(?<site>.+)")
  525. mt = re.Match(Message)
  526. item = mt.Groups("site").ToString
  527. Dim url As String = "http://" & item
  528. Dim http As New HTTPSocketClass
  529.  
  530. If http.IsValidSite(url, channel, tnSocket, SendBytes) Then
  531. Return True
  532. Else
  533. Return False
  534. End If
  535. End If
  536.  
  537. If RegXPChecker("^" & cmdPrefix & "quit (?<item>.+)", Message) Then
  538. re = New Regex("^" & cmdPrefix & "quit (?<item>.+)")
  539. mt = re.Match(Message)
  540. item = mt.Groups("item").ToString
  541. SendInfo("QUIT :" & item, SendBytes, tnSocket)
  542. Return True
  543. End If
  544.  
  545. If RegXPChecker("^" & cmdPrefix & "quit$", Message) Then
  546. If nickname = "MrTwig" Or nickname = "MrPenguin" Then
  547. SendInfo("PRIVMSG " & channel & " :fag", SendBytes, tnSocket)
  548.  
  549. Return True
  550. End If
  551. SendInfo("QUIT :" & "Good Bye", SendBytes, tnSocket)
  552. Return True
  553. End If
  554.  
  555. If RegXPChecker("^" & cmdPrefix & "kick (?<item>.+) (?<item2>.+)", Message) Then
  556. re = New Regex("^" & cmdPrefix & "kick (?<item>.+?) (?<item2>.+)")
  557. mt = re.Match(Message)
  558. item = mt.Groups("item").ToString
  559. item2 = mt.Groups("item2").ToString
  560. SendInfo("KICK " & channel & " " & item & " :" & item2, SendBytes, tnSocket)
  561. Return True
  562. End If
  563.  
  564. If RegXPChecker("^" & cmdPrefix & "kick (?<item>.+)", Message) Then
  565. re = New Regex("^" & cmdPrefix & "kick (?<item>.+)")
  566. mt = re.Match(Message)
  567. item = mt.Groups("item").ToString
  568. SendInfo("KICK " & channel & " " & item, SendBytes, tnSocket)
  569. Return True
  570. End If
  571.  
  572. If RegXPChecker("^" & cmdPrefix & "mode (?<item>.+)", Message) Then
  573. re = New Regex("^" & cmdPrefix & "mode (?<item>.+)")
  574. mt = re.Match(Message)
  575. item = mt.Groups("item").ToString
  576. SendInfo("MODE " & channel & " " & item, SendBytes, tnSocket)
  577. Return True
  578. End If
  579.  
  580. If RegXPChecker("^" & cmdPrefix & "op (?<item>.+)", Message) Then
  581. re = New Regex("^" & cmdPrefix & "op (?<item>.+)")
  582. mt = re.Match(Message)
  583. item = mt.Groups("item").ToString
  584. SendInfo("MODE " & channel & " +o " & item, SendBytes, tnSocket)
  585. Return True
  586. End If
  587.  
  588. If RegXPChecker("^" & cmdPrefix & "deop (?<item>.+)", Message) Then
  589. re = New Regex("^" & cmdPrefix & "deop (?<item>.+)")
  590. mt = re.Match(Message)
  591. item = mt.Groups("item").ToString
  592. SendInfo("MODE " & channel & " -o " & item, SendBytes, tnSocket)
  593. Return True
  594. End If
  595.  
  596. If RegXPChecker("^" & cmdPrefix & "voice (?<item>.+)", Message) Then
  597. re = New Regex("^" & cmdPrefix & "voice (?<item>.+)")
  598. mt = re.Match(Message)
  599. item = mt.Groups("item").ToString
  600. SendInfo("MODE " & channel & " +v " & item, SendBytes, tnSocket)
  601. Return True
  602. End If
  603.  
  604. If RegXPChecker("^" & cmdPrefix & "help (?<item>.+)", Message) Then
  605. re = New Regex("^" & cmdPrefix & "help (?<item>.+)")
  606. mt = re.Match(Message)
  607. item = mt.Groups("item").ToString
  608. SQL = "SELECT tblbotcmdlist.BotID, tblbotcmdlist.Command, tblbotcmdlist.Usage, tblbotcmdlist.Syntax FROM tblbotcmdlist GROUP BY tblbotcmdlist.BotID, tblbotcmdlist.Command, tblbotcmdlist.Usage, tblbotcmdlist.Syntax HAVING (((tblbotcmdlist.BotID)=" & BotID & ") AND ((tblbotcmdlist.Command)=""" & QueryClean(item) & """));"
  609.  
  610. Dim conn As New MySqlConnection
  611. Dim myCommand As New MySqlCommand
  612. Dim myReader As MySqlDataReader
  613.  
  614. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  615.  
  616. Try
  617. conn.Open()
  618. Try
  619. myCommand.Connection = conn
  620. myCommand.CommandText = SQL
  621. myReader = myCommand.ExecuteReader
  622. Dim reply As String = ""
  623.  
  624. While myReader.Read
  625. reply = "Command:" & nz(myReader.GetValue(1), "")
  626. reply = reply & " Syntax:" & nz(myReader.GetValue(3), "")
  627. Debug.Print(reply)
  628.  
  629. If reply = "Command: Syntax:" Then
  630.  
  631. Else
  632. SendInfo("NOTICE " & nickname & " :" & reply, SendBytes, tnSocket)
  633. Wait(2000)
  634. End If
  635.  
  636. End While
  637.  
  638. Catch myerror As MySqlException
  639. MsgBox("There was an error reading from the database: " & myerror.Message)
  640. End Try
  641. Catch myerror As MySqlException
  642. MsgBox("Error connecting to the database: " & myerror.Message)
  643. Finally
  644. If conn.State <> ConnectionState.Closed Then conn.Close()
  645. End Try
  646. Return True
  647. End If
  648.  
  649. If RegXPChecker("^" & cmdPrefix & "help$", Message) Then
  650. SQL = "SELECT tblbotcmdlist.BotID, tblbotcmdlist.Command, tblbotcmdlist.Usage, tblbotcmdlist.Syntax FROM tblbotcmdlist GROUP BY tblbotcmdlist.BotID, tblbotcmdlist.Command, tblbotcmdlist.Usage, tblbotcmdlist.Syntax HAVING (((tblbotcmdlist.BotID)=" & BotID & "));"
  651.  
  652. Dim conn As New MySqlConnection
  653. Dim myCommand As New MySqlCommand
  654. Dim myReader As MySqlDataReader
  655.  
  656. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  657.  
  658. Try
  659. conn.Open()
  660. Try
  661. myCommand.Connection = conn
  662. myCommand.CommandText = SQL
  663. myReader = myCommand.ExecuteReader
  664. Dim reply As String = ""
  665.  
  666. While myReader.Read
  667. reply = "Command:" & nz(myReader.GetValue(1), "")
  668. reply = reply & " Syntax:" & nz(myReader.GetValue(3), "")
  669. If reply = "Command: Syntax:" Then
  670.  
  671. Else
  672. SendInfo("NOTICE " & nickname & " :" & reply, SendBytes, tnSocket)
  673. Wait(2000)
  674. End If
  675. End While
  676.  
  677. Catch myerror As MySqlException
  678. MsgBox("There was an error reading from the database: " & myerror.Message)
  679. End Try
  680. Catch myerror As MySqlException
  681. MsgBox("Error connecting to the database: " & myerror.Message)
  682. Finally
  683. If conn.State <> ConnectionState.Closed Then conn.Close()
  684. End Try
  685. Return True
  686. End If
  687.  
  688. If RegXPChecker("^" & cmdPrefix & "errorlog (?<item>.+)", Message) Then
  689. re = New Regex("^" & cmdPrefix & "errorlog (?<item>.+)")
  690. mt = re.Match(Message)
  691. item = mt.Groups("item").ToString
  692. If RegXPChecker(ZeroTo9Regex, item) Then
  693. item = System.Convert.ToInt32(item)
  694. If item < 0 Then
  695. Return False
  696. End If
  697. Else
  698. Return False
  699. End If
  700.  
  701. SQL = "SELECT IDNum,ErrorNumber,HappenedWhen FROM tblerrorlog WHERE BotID=" & BotID & " ORDER BY IDNum DESC LIMIT " & QueryClean(item)
  702.  
  703. Dim conn As New MySqlConnection
  704. Dim myCommand As New MySqlCommand
  705. Dim myReader As MySqlDataReader
  706.  
  707. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  708.  
  709. Try
  710. conn.Open()
  711. Try
  712. myCommand.Connection = conn
  713. myCommand.CommandText = SQL
  714. myReader = myCommand.ExecuteReader
  715.  
  716. Dim reply As String = ""
  717. While myReader.Read
  718. reply = "Error Num:" & nz(myReader.GetValue(1), "") & " at:" & nz(myReader.GetValue(2), "")
  719. reply = Replace(reply, vbCrLf, "")
  720. Debug.Print(reply)
  721.  
  722. If reply = "Error Num: at:" Then
  723. Return True
  724. End If
  725. SendInfo("PRIVMSG " & channel & " :" & reply, SendBytes, tnSocket)
  726. Wait(2200)
  727.  
  728. End While
  729. Return True
  730. Catch myerror As MySqlException
  731. MsgBox("There was an error reading from the database: " & myerror.Message)
  732. End Try
  733. Catch myerror As MySqlException
  734. MsgBox("Error connecting to the database: " & myerror.Message)
  735. Finally
  736. If conn.State <> ConnectionState.Closed Then conn.Close()
  737. End Try
  738. SendInfo("PRIVMSG " & channel & " :Hooray no errors! you must of fixed me!", SendBytes, tnSocket)
  739. Return False
  740. End If
  741.  
  742. If RegXPChecker("^" & cmdPrefix & "delerrorlog$", Message) Then
  743.  
  744. If DeleteRecords("DELETE FROM tblerrorlog WHERE BotID=" & BotID, "Error log Del") Then
  745.  
  746. End If
  747.  
  748. SendInfo("PRIVMSG " & channel & " :Deleted error log", SendBytes, tnSocket)
  749. Return True
  750. End If
  751.  
  752. If RegXPChecker("^" & cmdPrefix & "calc (?<item>.+)\*(?<item2>.+)", Message) Then
  753. re = New Regex("^" & cmdPrefix & "calc (?<item>.+)\*(?<item2>.+)")
  754. mt = re.Match(Message)
  755. item = mt.Groups("item").ToString
  756. item2 = mt.Groups("item2").ToString
  757.  
  758. If RegXPChecker(ZeroTo9Regex, item) = False Or RegXPChecker(ZeroTo9Regex, item2) = False Then
  759. Return False
  760. End If
  761.  
  762. SendInfo("PRIVMSG " & channel & " :Answer: " & item * item2, SendBytes, tnSocket)
  763. Return True
  764. End If
  765.  
  766. If RegXPChecker("^" & cmdPrefix & "setupftp (?<item>.+) (?<item2>.+)", Message) Then
  767. re = New Regex("^" & cmdPrefix & "setupftp (?<item>.+) (?<item2>.+)")
  768. mt = re.Match(Message)
  769. item = mt.Groups("item").ToString
  770. item2 = mt.Groups("item2").ToString
  771.  
  772. If RegXPChecker(ZeroTo9Regex, item2) = False Then
  773. Return False
  774. End If
  775.  
  776. SQL = "INSERT INTO tblP2PServers(Server,Port,Proto,BotID) VALUES(""" & item & """,""" & item2 & """,""" & "FTP" & """," & BotID & ")"
  777. If InsertRecords(SQL, "InsertFTP") Then
  778.  
  779. End If
  780.  
  781. SendInfo("NOTICE " & nickname & " :to set a username notice me: SetFtpUser <username>", SendBytes, tnSocket)
  782. SendInfo("NOTICE " & nickname & " :to set a username notice me: SetFtpPass <pass>", SendBytes, tnSocket)
  783. SendInfo("PRIVMSG " & channel & " :Added ftp server " & item & " on port " & item2, SendBytes, tnSocket)
  784. Return True
  785. End If
  786.  
  787. If RegXPChecker("^" & cmdPrefix & "setupssh (?<item>.+) (?<item2>.+)", Message) Then
  788. re = New Regex("^" & cmdPrefix & "setupssh (?<item>.+) (?<item2>.+)")
  789. mt = re.Match(Message)
  790. item = mt.Groups("item").ToString
  791. item2 = mt.Groups("item2").ToString
  792.  
  793. If RegXPChecker(ZeroTo9Regex, item2) = False Then
  794. Return False
  795. End If
  796.  
  797. SQL = "INSERT INTO tblP2PServers(Server,Port,Proto,BotID) VALUES(""" & item & """,""" & item2 & """,""" & "FTP" & """," & BotID & ")"
  798. If InsertRecords(SQL, "InsertFTP") Then
  799.  
  800. End If
  801.  
  802. SendInfo("NOTICE " & nickname & " :to set a username notice me: SetFtpUser <username>", SendBytes, tnSocket)
  803. SendInfo("NOTICE " & nickname & " :to set a username notice me: SetFtpPass <pass>", SendBytes, tnSocket)
  804. SendInfo("PRIVMSG " & channel & " :Added ftp server " & item & " on port " & item2, SendBytes, tnSocket)
  805. Return True
  806. End If
  807.  
  808. If RegXPChecker("^" & cmdPrefix & "setuptracker (?<item>.+) (?<item2>.+)", Message) Then
  809. re = New Regex("^" & cmdPrefix & "setuptracker (?<item>.+) (?<item2>.+)")
  810. mt = re.Match(Message)
  811. item = mt.Groups("item").ToString
  812. item2 = mt.Groups("item2").ToString
  813.  
  814. SQL = "INSERT INTO tblP2PServers(Server,Port,Proto,BotID) VALUES(""" & item & """,""" & item2 & """,""" & "BITTORRENT" & """," & BotID & ")"
  815.  
  816. If InsertRecords(SQL, "InsertFTP") Then
  817.  
  818. End If
  819.  
  820. SendInfo("PRIVMSG " & channel & " :Added torrent tracker: " & item, SendBytes, tnSocket)
  821. Return True
  822. End If
  823.  
  824. If RegXPChecker("^" & cmdPrefix & "mergetracker (?<item>.+) (?<item2>.+)", Message) Then
  825. re = New Regex("^" & cmdPrefix & "mergetracker (?<item>.+) (?<item2>.+)")
  826. mt = re.Match(Message)
  827. item = mt.Groups("item").ToString
  828. item2 = mt.Groups("item2").ToString
  829.  
  830. SQL = "INSERT INTO tblP2PServers(Server,Port,Proto,BotID) VALUES(""" & item & """,""" & item2 & """,""" & "BITTORRENT" & """," & BotID & ")"
  831.  
  832. If InsertRecords(SQL, "InsertFTP") Then
  833.  
  834. End If
  835.  
  836. SendInfo("PRIVMSG " & channel & " :Added torrent tracker: " & item, SendBytes, tnSocket)
  837. Return True
  838. End If
  839.  
  840. If RegXPChecker("^" & cmdPrefix & "devoice (?<item>.+)", Message) Then
  841. re = New Regex("^" & cmdPrefix & "devoice (?<item>.+)")
  842. mt = re.Match(Message)
  843. item = mt.Groups("item").ToString
  844. SendInfo("MODE " & channel & " -v " & item, SendBytes, tnSocket)
  845. Return True
  846. End If
  847.  
  848. If RegXPChecker("^" & cmdPrefix & "ban (?<item>.+)", Message) Then
  849. re = New Regex("^" & cmdPrefix & "ban (?<item>.+)")
  850. mt = re.Match(Message)
  851. item = mt.Groups("item").ToString
  852. SendInfo("MODE " & channel & " +b " & item, SendBytes, tnSocket)
  853. Return True
  854. End If
  855.  
  856. If RegXPChecker("^" & cmdPrefix & "last (?<item>.+)", Message) Then
  857. re = New Regex("^" & cmdPrefix & "last (?<item>.+)")
  858. mt = re.Match(Message)
  859. item = mt.Groups("item").ToString
  860.  
  861. 'MAKE DB CALL
  862. SQL = "SELECT message FROM tbluserchat WHERE tbluserchat.Nick=""" & QueryClean(item) & """ AND tbluserchat.Channel=""" & channel & """ ORDER BY idnum DESC LIMIT 1"
  863.  
  864. Dim conn As New MySqlConnection
  865. Dim myCommand As New MySqlCommand
  866. Dim myReader As MySqlDataReader
  867.  
  868. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  869.  
  870. Try
  871. conn.Open()
  872. Try
  873. myCommand.Connection = conn
  874. myCommand.CommandText = SQL
  875. myReader = myCommand.ExecuteReader
  876.  
  877. Dim reply As String = ""
  878.  
  879. While myReader.Read
  880. reply = nz(myReader.GetValue(0), "")
  881. End While
  882.  
  883. If reply = "" Then
  884. SendInfo("PRIVMSG " & channel & " :No history for " & item, SendBytes, tnSocket)
  885. Else
  886. SendInfo("PRIVMSG " & channel & " :" & item & " said: " & reply, SendBytes, tnSocket)
  887. End If
  888.  
  889. Catch myerror As MySqlException
  890. MsgBox("There was an error reading from the database: " & myerror.Message)
  891. End Try
  892. Catch myerror As MySqlException
  893. MsgBox("Error connecting to the database: " & myerror.Message)
  894. Finally
  895. If conn.State <> ConnectionState.Closed Then conn.Close()
  896. End Try
  897. Return True
  898. End If
  899.  
  900. If RegXPChecker("^" & cmdPrefix & "gem (?<item>.+)", Message) Then
  901. re = New Regex("^" & cmdPrefix & "gem (?<item>.+)")
  902. mt = re.Match(Message)
  903. item = mt.Groups("item").ToString
  904.  
  905. SQL = "INSERT INTO tbllines(botid, Command, Line) VALUES(" & BotID & ", """ & cmdPrefix & "gem" & """, """ & item & """)"
  906.  
  907. If InsertRecords(SQL, "GEM") Then
  908.  
  909. End If
  910.  
  911. Return True
  912. End If
  913.  
  914. If RegXPChecker("^" & cmdPrefix & "gem$", Message) Then
  915.  
  916. Dim maxint As String = "0"
  917. Dim minint As String = "0"
  918. maxint = GetField("SELECT max(idnum) FROM tbllines", maxint, "Max")
  919. minint = GetField("SELECT min(idnum) FROM tbllines", minint, "min") - 1
  920.  
  921. SQL = "SELECT Line FROM tbllines WHERE IDNum>=" & RandomNumber(maxint, minint)
  922.  
  923. Dim conn As New MySqlConnection
  924. Dim myCommand As New MySqlCommand
  925. Dim myReader As MySqlDataReader
  926.  
  927. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  928. Try
  929. conn.Open()
  930.  
  931. Try
  932. myCommand.Connection = conn
  933. myCommand.CommandText = SQL
  934. myReader = myCommand.ExecuteReader
  935. Dim reply As String = ""
  936. While myReader.Read
  937. reply = "PRIVMSG " & channel & " :" & nz(myReader.GetValue(0), "")
  938. Exit While
  939. End While
  940.  
  941. SendInfo(reply, SendBytes, tnSocket)
  942.  
  943. Catch myerror As MySqlException
  944. MsgBox("There was an error reading from the database: " & myerror.Message)
  945. End Try
  946. Catch myerror As MySqlException
  947. MsgBox("Error connecting to the database: " & myerror.Message)
  948. Finally
  949. If conn.State <> ConnectionState.Closed Then conn.Close()
  950. End Try
  951. Return True
  952. End If
  953.  
  954. If RegXPChecker("^" & cmdPrefix & "8ball (?<item>.+)", Message) Then
  955. re = New Regex("^" & cmdPrefix & "8ball (?<item>.+)")
  956. mt = re.Match(Message)
  957. item = mt.Groups("item").ToString
  958. Dim EightBallResponse(20) As String
  959. EightBallResponse(0) = "You may rely on it"
  960. EightBallResponse(1) = "Yes - definitely"
  961. EightBallResponse(2) = "Yes"
  962. EightBallResponse(3) = "Without a doubt"
  963. EightBallResponse(4) = "Very doubtful"
  964. EightBallResponse(5) = "Signs point to yes"
  965. EightBallResponse(6) = "Reply hazy, try again"
  966. EightBallResponse(7) = "Outlook not so good"
  967. EightBallResponse(8) = "Outlook good"
  968. EightBallResponse(9) = "My sources say no"
  969. EightBallResponse(10) = "My reply is no"
  970. EightBallResponse(11) = "Most likely"
  971. EightBallResponse(12) = "It is decidedly so"
  972. EightBallResponse(13) = "It is certain"
  973. EightBallResponse(14) = "Don't count on it"
  974. EightBallResponse(15) = "Concentrate and ask again"
  975. EightBallResponse(16) = "Cannot predict now"
  976. EightBallResponse(17) = "Better not tell you now"
  977. EightBallResponse(18) = "Ask again later"
  978. EightBallResponse(19) = "As I see it, yes"
  979.  
  980.  
  981. Dim rndnumeightball As Integer
  982. rndnumeightball=randomnumber(19,0)
  983. Debug.Print(rndnumeightball)
  984. SendInfo("PRIVMSG " & channel & " :" & EightBallResponse(rndnumeightball),SendBytes,tnSocket)
  985. Return True
  986. End If
  987.  
  988. If RegXPChecker("^" & cmdPrefix & "seen (?<item>.+)", Message) Then
  989. re = New Regex("^" & cmdPrefix & "seen (?<item>.+)")
  990. mt = re.Match(Message)
  991. item = mt.Groups("item").ToString
  992.  
  993. SQL = "SELECT TheTime,message FROM tbluserchat WHERE tbluserchat.Nick=""" & QueryClean(item) & """ AND tbluserchat.Channel=""" & QueryClean(channel) & """ ORDER BY idnum DESC LIMIT 1"
  994.  
  995. Dim conn As New MySqlConnection
  996. Dim myCommand As New MySqlCommand
  997. Dim myReader As MySqlDataReader
  998.  
  999. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  1000.  
  1001. Try
  1002. conn.Open()
  1003.  
  1004. Try
  1005. myCommand.Connection = conn
  1006. myCommand.CommandText = SQL
  1007. myReader = myCommand.ExecuteReader
  1008. Dim reply As String = ""
  1009. While myReader.Read
  1010. reply = "PRIVMSG " & channel & " :" & item & " was last seen on: " & nz(myReader.GetValue(0), "Never") & " Saying " & nz(myReader.GetValue(1), "I Dont Exist!")
  1011. End While
  1012.  
  1013. SendInfo(reply, SendBytes, tnSocket)
  1014. Catch myerror As MySqlException
  1015. MsgBox("There was an error reading from the database: " & myerror.Message)
  1016. End Try
  1017. Catch myerror As MySqlException
  1018. MsgBox("Error connecting to the database: " & myerror.Message)
  1019. Finally
  1020. If conn.State <> ConnectionState.Closed Then conn.Close()
  1021. End Try
  1022. Return True
  1023. End If
  1024.  
  1025. If RegXPChecker("^" & cmdPrefix & "google (?<item>.+)", Message) Then
  1026. re = New Regex("^" & cmdPrefix & "google (?<item>.+)")
  1027. mt = re.Match(Message)
  1028. item = mt.Groups("item").ToString
  1029.  
  1030. Dim url As String = "http://www.google.com/search?source=ig&hl=en&rlz=&=&q=" & item & "btnG=Google+Search"
  1031. Dim webClient As System.Net.WebClient = New System.Net.WebClient()
  1032. Dim result2 As String = webClient.DownloadString(url)
  1033.  
  1034.  
  1035. 'SendInfo(str2, SendBytes, tnSocket)
  1036. Return True
  1037. End If
  1038.  
  1039. If RegXPChecker("^" & cmdPrefix & "weather (?<item>.+)", Message) Then
  1040. re = New Regex("^" & cmdPrefix & "weather (?<item>.+)")
  1041. mt = re.Match(Message)
  1042. item = mt.Groups("item").ToString
  1043.  
  1044. Dim url As String = "http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=" & item
  1045. Dim webClient As System.Net.WebClient = New System.Net.WebClient()
  1046. webClient.DownloadFile(url, "c:\tmp.txt")
  1047. Dim str2 As String = ""
  1048. Dim xmlparse As New XmlReader
  1049. Dim reply As String
  1050.  
  1051. reply = xmlparse.ReadXML("c:\tmp.txt")
  1052.  
  1053. If reply = "" Or reply = "None" Then
  1054. Return False
  1055. End If
  1056.  
  1057. reply = "PRIVMSG " & channel & " :" & reply
  1058. SendInfo(reply, SendBytes, tnSocket)
  1059. Return True
  1060. End If
  1061.  
  1062. If RegXPChecker("^" & cmdPrefix & "unban (?<item>.+)", Message) Then
  1063. re = New Regex("^" & cmdPrefix & "unban (?<item>.+)")
  1064. mt = re.Match(Message)
  1065. item = mt.Groups("item").ToString
  1066. SendInfo("MODE " & channel & " -b " & item & "@", SendBytes, tnSocket)
  1067. Return True
  1068. End If
  1069.  
  1070. If RegXPChecker("^\" & cmdPrefix & "say (?<item>.+)", Message) Then
  1071. re = New Regex("^\" & cmdPrefix & "say (?<item>.+)")
  1072. mt = re.Match(Message)
  1073. item = mt.Groups("item").ToString
  1074. SendInfo("PRIVMSG " & channel & " :" & item & vbCrLf, SendBytes, tnSocket)
  1075. Return True
  1076. End If
  1077.  
  1078. 'LEVEL ADDING AND GROUP CMD ADDING
  1079. If RegXPChecker("^\" & cmdPrefix & "addlevel (?<item>.+) (?<item2>.+)", Message) Then
  1080. re = New Regex("^\" & cmdPrefix & "addlevel (?<item>.+) (?<item2>.+)")
  1081. mt = re.Match(Message)
  1082. item = mt.Groups("item").ToString
  1083. item2 = mt.Groups("item2").ToString
  1084.  
  1085. If InStr(item, "#") > 0 Then
  1086. Return False
  1087. End If
  1088.  
  1089. If RegXPChecker(ZeroTo9Regex, item2) = False Then
  1090. SendInfo("PRIVMSG " & channel & " :" & item & vbCrLf, SendBytes, tnSocket)
  1091. End If
  1092.  
  1093. result = AclClass.AddUserLevel(item, BotID, channel, BotName, item2, ServerName)
  1094.  
  1095. If Not result = "False" Then
  1096. SendInfo(result, SendBytes, tnSocket)
  1097. End If
  1098.  
  1099. Return True
  1100. End If
  1101.  
  1102. If RegXPChecker("^\" & cmdPrefix & "addlevel (?<item>.+) ", Message) Then
  1103. re = New Regex("^\" & cmdPrefix & "addlevel (?<item>.+)")
  1104. mt = re.Match(Message)
  1105. item = "#" & mt.Groups("item").ToString
  1106. item2 = mt.Groups("item2").ToString
  1107.  
  1108. If RegXPChecker(ZeroTo9Regex, item2) = False Then
  1109. SendInfo("PRIVMSG " & channel & " :" & item & vbCrLf, SendBytes, tnSocket)
  1110. End If
  1111.  
  1112. result = AclClass.AddUserLevel(item, BotID, channel, BotName, item2, ServerName)
  1113.  
  1114. If Not result = "False" Then
  1115. SendInfo(result, SendBytes, tnSocket)
  1116. End If
  1117.  
  1118. Return True
  1119. End If
  1120.  
  1121. If RegXPChecker("^" & cmdPrefix & "dellevel (?<item>.+?) (?<item2>.+)", Message) Then
  1122. re = New Regex("^" & cmdPrefix & "dellevel (?<item>.+?) (?<item2>.+)")
  1123. mt = re.Match(Message)
  1124. item = mt.Groups("item").ToString
  1125. item2 = mt.Groups("item2").ToString
  1126. SendInfo("PRIVMSG " & channel & " :Deleted level " & item & vbCrLf, SendBytes, tnSocket)
  1127. Return True
  1128. End If
  1129.  
  1130. If RegXPChecker("^" & cmdPrefix & "delcmd (?<item>.+) group (?<item2>.+)", Message) Then
  1131. re = New Regex("^" & cmdPrefix & "delcmd (?<item>.+) group (?<item2>.+)")
  1132. mt = re.Match(Message)
  1133. item = mt.Groups("item").ToString
  1134. item2 = mt.Groups("item2").ToString
  1135. SendInfo("PRIVMSG " & channel & " :Deleted command group " & item2 & vbCrLf, SendBytes, tnSocket)
  1136. Return True
  1137. End If
  1138.  
  1139. If RegXPChecker("^\" & cmdPrefix & "addgroup (?<item>.+?) (?<item2>.+)", Message) Then
  1140. re = New Regex("^\" & cmdPrefix & "addgroup (?<item>.+?) (?<item2>.+)")
  1141. mt = re.Match(Message)
  1142. item = mt.Groups("item").ToString
  1143. item2 = mt.Groups("item2").ToString
  1144. result = AclClass.AddUserGroup(BotName, item2, BotID, channel, item, ServerName)
  1145.  
  1146. If Not result = "False" Then
  1147. SendInfo(result, SendBytes, tnSocket)
  1148. End If
  1149.  
  1150. Return True
  1151. End If
  1152.  
  1153. If RegXPChecker("^\" & cmdPrefix & "listgroups (?<item>.+?)", Message) Then
  1154. re = New Regex("^\" & cmdPrefix & "listgroups (?<item>.+?)")
  1155. mt = re.Match(Message)
  1156. item = mt.Groups("item").ToString
  1157. If RegXPChecker(A2ZRegex, item) Then
  1158.  
  1159. SQL = "SELECT BotGroup FROM tblaclbygroup WHERE BotID=" & BotID & " AND BotGroup=""" & item & """GROUP BY BotGroup"
  1160.  
  1161. Dim conn As New MySqlConnection
  1162. Dim myCommand As New MySqlCommand
  1163. Dim myReader As MySqlDataReader
  1164.  
  1165. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  1166.  
  1167. Try
  1168. conn.Open()
  1169.  
  1170. Try
  1171. myCommand.Connection = conn
  1172. myCommand.CommandText = SQL
  1173. myReader = myCommand.ExecuteReader
  1174. Dim reply As String = ""
  1175.  
  1176. While myReader.Read
  1177. reply = nz(myReader.GetValue(0), "")
  1178. SendInfo("NOTICE " & nickname & " : Group " & reply & vbCrLf, SendBytes, tnSocket)
  1179. Wait(1000)
  1180. End While
  1181.  
  1182. Catch myerror As MySqlException
  1183. MsgBox("There was an error reading from the database: " & myerror.Message)
  1184. End Try
  1185. Catch myerror As MySqlException
  1186. MsgBox("Error connecting to the database: " & myerror.Message)
  1187. Finally
  1188. If conn.State <> ConnectionState.Closed Then conn.Close()
  1189. End Try
  1190. End If
  1191.  
  1192. Return True
  1193. End If
  1194.  
  1195. If RegXPChecker("^" & cmdPrefix & "listgroups$", Message) Then
  1196. SQL = "SELECT BotGroup FROM tblaclbygroup WHERE BotID=" & BotID & " GROUP BY BotGroup"
  1197.  
  1198. Dim conn As New MySqlConnection
  1199. Dim myCommand As New MySqlCommand
  1200. Dim myReader As MySqlDataReader
  1201.  
  1202. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  1203.  
  1204. Try
  1205. conn.Open()
  1206.  
  1207. Try
  1208. myCommand.Connection = conn
  1209. myCommand.CommandText = SQL
  1210. myReader = myCommand.ExecuteReader
  1211. Dim reply As String = ""
  1212.  
  1213. While myReader.Read
  1214. reply = nz(myReader.GetValue(0), "")
  1215. SendInfo("NOTICE " & nickname & " : Group " & reply & vbCrLf, SendBytes, tnSocket)
  1216. Wait(1000)
  1217. End While
  1218.  
  1219. Catch myerror As MySqlException
  1220. MsgBox("There was an error reading from the database: " & myerror.Message)
  1221. End Try
  1222. Catch myerror As MySqlException
  1223. MsgBox("Error connecting to the database: " & myerror.Message)
  1224. Finally
  1225. If conn.State <> ConnectionState.Closed Then conn.Close()
  1226. End Try
  1227. Return True
  1228. End If
  1229.  
  1230. If RegXPChecker("^\" & cmdPrefix & "listlevels (?<item>.+?)", Message) Then
  1231. re = New Regex("^\" & cmdPrefix & "listlevels (?<item>.+?)")
  1232. mt = re.Match(Message)
  1233. item = mt.Groups("item").ToString
  1234. If RegXPChecker(ZeroTo9Regex, item) Then
  1235.  
  1236. SQL = "SELECT Level FROM tblacl WHERE BotID=" & BotID & " AND Level=""" & item & """ GROUP BY Level"
  1237.  
  1238. Dim conn As New MySqlConnection
  1239. Dim myCommand As New MySqlCommand
  1240. Dim myReader As MySqlDataReader
  1241.  
  1242. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  1243.  
  1244. Try
  1245. conn.Open()
  1246.  
  1247. Try
  1248. myCommand.Connection = conn
  1249. myCommand.CommandText = SQL
  1250. myReader = myCommand.ExecuteReader
  1251. Dim reply As String = ""
  1252.  
  1253. While myReader.Read
  1254. reply = nz(myReader.GetValue(0), "")
  1255. SendInfo("NOTICE " & nickname & " : Level " & reply & vbCrLf, SendBytes, tnSocket)
  1256. Wait(1000)
  1257. End While
  1258.  
  1259. Catch myerror As MySqlException
  1260. MsgBox("There was an error reading from the database: " & myerror.Message)
  1261. End Try
  1262. Catch myerror As MySqlException
  1263. MsgBox("Error connecting to the database: " & myerror.Message)
  1264. Finally
  1265. If conn.State <> ConnectionState.Closed Then conn.Close()
  1266. End Try
  1267. End If
  1268.  
  1269. Return True
  1270. End If
  1271.  
  1272. If RegXPChecker("^\" & cmdPrefix & "listlevels$", Message) Then
  1273.  
  1274. SQL = "SELECT Level FROM tblacl WHERE BotID=" & BotID & " GROUP BY Level"
  1275.  
  1276. Dim conn As New MySqlConnection
  1277. Dim myCommand As New MySqlCommand
  1278. Dim myReader As MySqlDataReader
  1279.  
  1280. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  1281.  
  1282. Try
  1283. conn.Open()
  1284.  
  1285. Try
  1286. myCommand.Connection = conn
  1287. myCommand.CommandText = SQL
  1288. myReader = myCommand.ExecuteReader
  1289. Dim reply As String = ""
  1290.  
  1291. While myReader.Read
  1292. reply = nz(myReader.GetValue(0), "")
  1293. SendInfo("NOTICE " & nickname & " : Level " & reply & vbCrLf, SendBytes, tnSocket)
  1294. Wait(1000)
  1295. End While
  1296.  
  1297. Catch myerror As MySqlException
  1298. MsgBox("There was an error reading from the database: " & myerror.Message)
  1299. End Try
  1300. Catch myerror As MySqlException
  1301. MsgBox("Error connecting to the database: " & myerror.Message)
  1302. Finally
  1303. If conn.State <> ConnectionState.Closed Then conn.Close()
  1304. End Try
  1305. Return True
  1306. End If
  1307.  
  1308. If RegXPChecker("^\" & cmdPrefix & "delgroup (?<item>.+)", Message) Then
  1309. re = New Regex("^\" & cmdPrefix & "delgroup (?<item>.+)")
  1310. mt = re.Match(Message)
  1311. item = mt.Groups("item").ToString
  1312. result = AclClass.DelUserGroup(nickname, BotID, channel, item)
  1313.  
  1314. If Not result = "False" Then
  1315. SendInfo("PRIVMSG " & channel & " :Deleted level " & item & vbCrLf, SendBytes, tnSocket)
  1316. End If
  1317. Return True
  1318. End If
  1319.  
  1320. If RegXPChecker("^\" & cmdPrefix & "setupproxy (?<item>.+?)", Message) Then
  1321. re = New Regex("^\" & cmdPrefix & "setupproxy (?<item>.+?)")
  1322. mt = re.Match(Message)
  1323. item = mt.Groups("item").ToString
  1324.  
  1325. SQL = "INSERT INTO tblserverevasion(botID, ThreadID,Server,BotName) VALUES(" & BotID & ", """ & ThreadID & """, """ & item & """,""" & BotName & """)"
  1326. InsertRecords(SQL, "SETUP PROXY")
  1327. SendInfo("PRIVMSG " & channel & " :Added proxy " & item & vbCrLf, SendBytes, tnSocket)
  1328. Return True
  1329. End If
  1330.  
  1331. If RegXPChecker("^\" & cmdPrefix & "addcmd (?<item>.+?) (?<item2>.+)", Message) Then
  1332. re = New Regex("^\" & cmdPrefix & "addcmd (?<item>.+?) (?<item2>.+)")
  1333. mt = re.Match(Message)
  1334. item = mt.Groups("item").ToString
  1335. item2 = mt.Groups("item2").ToString
  1336.  
  1337. If RegXPChecker(ZeroTo9Regex, item2) Then
  1338. SQL = "INSERT INTO tblbotcmdlist(botid, Command, Level) VALUES(" & BotID & ", """ & item & """, """ & item2 & """)"
  1339. AddBotCmd(BotID, SQL)
  1340. SendInfo("PRIVMSG " & channel & " :Added command " & item & " to level: " & item2 & vbCrLf, SendBytes, tnSocket)
  1341. ElseIf RegXPChecker(A2ZRegex, item2) Then
  1342. SQL = "INSERT INTO tblbotcmdlist(botID, Command,GroupName) VALUES(" & BotID & ", """ & item & """, """ & item2 & """)"
  1343. AddBotCmd(BotID, SQL)
  1344. SendInfo("PRIVMSG " & channel & " :Added command " & item & " to group: " & item2 & vbCrLf, SendBytes, tnSocket)
  1345. End If
  1346.  
  1347. Return True
  1348. End If
  1349.  
  1350. If RegXPChecker("^" & cmdPrefix & "delcmd (?<item>.+?) (?<item2>.+)", Message) Then
  1351. re = New Regex("^" & cmdPrefix & "delcmd (?<item>.+?) (?<item2>.+)")
  1352. mt = re.Match(Message)
  1353. item = mt.Groups("item").ToString
  1354. item2 = mt.Groups("item2").ToString
  1355. SendInfo("PRIVMSG " & channel & " :Deleted command level " & item & vbCrLf, SendBytes, tnSocket)
  1356. Return True
  1357. End If
  1358.  
  1359. If RegXPChecker("^\" & cmdPrefix & "delcmd (?<item>.+?)", Message) Then
  1360. re = New Regex("^\" & cmdPrefix & "delcmd (?<item>.+?)")
  1361. mt = re.Match(Message)
  1362. item = mt.Groups("item").ToString
  1363. item2 = mt.Groups("item").ToString
  1364.  
  1365. 'If DeleteRecords("DELETE FROM tblbotcmdlist WHERE Command=""" & item & """", "Delete botcmdlist") Then
  1366.  
  1367. 'End If
  1368.  
  1369. SendInfo("PRIVMSG " & channel & " :Deleted command level " & item & vbCrLf, SendBytes, tnSocket)
  1370. Return True
  1371. End If
  1372.  
  1373. If RegXPChecker("^" & cmdPrefix & "link (?<item>.+)", Message) Then
  1374. re = New Regex("^" & cmdPrefix & "link (?<item>.+)")
  1375. mt = re.Match(Message)
  1376. item = mt.Groups("item").ToString
  1377. SendInfo("NOTICE " & item & " :Link" & BotName, SendBytes, tnSocket)
  1378. SendInfo("PRIVMSG " & channel & " :Linked to " & item, SendBytes, tnSocket)
  1379. Return True
  1380. End If
  1381.  
  1382. If RegXPChecker("^" & cmdPrefix & "unlink (?<item>.+)", Message) Then
  1383. re = New Regex("^" & cmdPrefix & "unlink (?<item>.+)")
  1384. mt = re.Match(Message)
  1385. item = mt.Groups("item").ToString
  1386. SendInfo("PRIVMSG " & channel & " :Linked " & item, SendBytes, tnSocket)
  1387. Return True
  1388. End If
  1389.  
  1390. If RegXPChecker("^" & cmdPrefix & "action (?<item>.+)", Message) Then
  1391. re = New Regex("^" & cmdPrefix & "action (?<item>.+)")
  1392. mt = re.Match(Message)
  1393. item = mt.Groups("item").ToString
  1394. SendInfo("PRIVMSG " & channel & " :" & "ACTION " & item & "", SendBytes, tnSocket)
  1395. Return True
  1396. End If
  1397.  
  1398. If RegXPChecker("^" & cmdPrefix & "topic (?<item>.+)", Message) Then
  1399. re = New Regex("^" & cmdPrefix & "topic (?<item>.+)")
  1400. mt = re.Match(Message)
  1401. item = mt.Groups("item").ToString
  1402. SendInfo("TOPIC " & channel & " :" & item, SendBytes, tnSocket)
  1403. Return True
  1404. End If
  1405.  
  1406. If RegXPChecker("^" & cmdPrefix & "part (?<item>.+)", Message) Then
  1407. re = New Regex("^" & cmdPrefix & "part (?<item>.+)")
  1408. mt = re.Match(Message)
  1409. item = mt.Groups("item").ToString
  1410. SendInfo("PART :" & item, SendBytes, tnSocket)
  1411. Return True
  1412. End If
  1413.  
  1414. If RegXPChecker("^" & cmdPrefix & "rejoin$", Message) Then
  1415. SendInfo("PART :" & channel, SendBytes, tnSocket)
  1416. SendInfo("JOIN :" & channel, SendBytes, tnSocket)
  1417. Return True
  1418. End If
  1419.  
  1420. If RegXPChecker("^" & cmdPrefix & "adduserprotect (?<item>.+) (?<item2>.+)", Message) Then
  1421. re = New Regex("^" & cmdPrefix & "adduserprotect (?<item>.+) (?<item2>.+)")
  1422. mt = re.Match(Message)
  1423. item = mt.Groups("item").ToString
  1424. item2 = mt.Groups("item2").ToString
  1425.  
  1426. If (AddProtect(item, BotName, item2, channel)) Then
  1427.  
  1428. End If
  1429.  
  1430. SendInfo("PRIVMSG " & channel & " :" & "added user", SendBytes, tnSocket)
  1431. Return True
  1432. End If
  1433.  
  1434. If RegXPChecker("^" & cmdPrefix & "adduserprotect (?<item>.+)", Message) Then
  1435. re = New Regex("^" & cmdPrefix & "adduserprotect (?<item>.+)")
  1436. mt = re.Match(Message)
  1437. item = mt.Groups("item").ToString
  1438.  
  1439. If (AddProtect(item, BotID, BotName)) Then
  1440.  
  1441. End If
  1442.  
  1443. SendInfo("PRIVMSG " & channel & " :" & "Added user:" & item, SendBytes, tnSocket)
  1444. Return True
  1445. End If
  1446.  
  1447. If RegXPChecker("^" & cmdPrefix & "deluserprotect (?<item>.+) (?<item2>.+)", Message) Then
  1448. re = New Regex("^" & cmdPrefix & "deluserprotect (?<item>.+) (?<item2>.+)")
  1449. mt = re.Match(Message)
  1450. item = mt.Groups("item").ToString
  1451. item2 = mt.Groups("item2").ToString
  1452.  
  1453. If (DelProtect(item, BotName, item2, channel)) Then
  1454.  
  1455. End If
  1456.  
  1457. SendInfo("PRIVMSG " & channel & " :" & "deleted user", SendBytes, tnSocket)
  1458. Return True
  1459. Else
  1460. If RegXPChecker("^" & cmdPrefix & "deluser (?<item>.+)", Message) Then
  1461. re = New Regex("^" & cmdPrefix & "deluser (?<item>.+)")
  1462. mt = re.Match(Message)
  1463. item = mt.Groups("item").ToString
  1464.  
  1465. If (DelProtect(item, BotName, "", channel)) Then
  1466.  
  1467. End If
  1468.  
  1469. SendInfo("PRIVMSG " & channel & " :" & "deleted user", SendBytes, tnSocket)
  1470. Return True
  1471. End If
  1472. End If
  1473.  
  1474. If RegXPChecker("^" & cmdPrefix & "deluserprotect (?<item>.+)", Message) Then
  1475. re = New Regex("^" & cmdPrefix & "deluserprotect (?<item>.+")
  1476. mt = re.Match(Message)
  1477. item = mt.Groups("item").ToString
  1478. item2 = mt.Groups("item2").ToString '
  1479.  
  1480. If (DelProtect(item, BotName, item2, channel)) Then
  1481.  
  1482. End If
  1483.  
  1484. SendInfo("PRIVMSG " & channel & " :" & "deleted user", SendBytes, tnSocket)
  1485. Return True
  1486. Else
  1487. If RegXPChecker("^" & cmdPrefix & "deluser (?<item>.+)", Message) Then
  1488. re = New Regex("^" & cmdPrefix & "deluser (?<item>.+)")
  1489. mt = re.Match(Message)
  1490. item = mt.Groups("item").ToString
  1491.  
  1492. If (DelProtect(item, BotName, "", channel)) Then
  1493.  
  1494. End If
  1495.  
  1496. SendInfo("PRIVMSG " & channel & " :" & "deleted user", SendBytes, tnSocket)
  1497. Return True
  1498. End If
  1499. End If
  1500.  
  1501. If RegXPChecker("^\" & cmdPrefix & "login$", Message) Then
  1502. SendInfo("NOTICE " & nickname & " :Please notice me auth:password" & vbCrLf, SendBytes, tnSocket)
  1503. Return True
  1504. End If
  1505.  
  1506.  
  1507. If RegXPChecker("^\" & cmdPrefix & "mylevel$", Message) Then
  1508. Dim Ulevel As String = ""
  1509. Dim UAuth As String
  1510. GetField("SELECT Level FROM tblacl WHERE BotID=" & BotID & " AND UserAccessName=""" & nickname & """", Ulevel, "Ulevel")
  1511. SendInfo("NOTICE " & nickname & " :you are AuthStatus at Status" & vbCrLf, SendBytes, tnSocket)
  1512. Return True
  1513. End If
  1514.  
  1515. If Message = "gregbot" Then
  1516. SendInfo("PRIVMSG " & channel & " :I hate you " & nickname & vbCrLf, SendBytes, tnSocket)
  1517. Return True
  1518. End If
  1519.  
  1520. If Message = "Rick Astley" Then
  1521. SendInfo("PRIVMSG " & channel & " :Will Never Give You Up." & vbCrLf, SendBytes, tnSocket)
  1522. SendInfo("PRIVMSG " & channel & " :Never Let You Down, Never Turn Around and Hurt You" & vbCrLf, SendBytes, tnSocket)
  1523. Return True
  1524. End If
  1525.  
  1526. If Message = "@whyistwiglame" Then
  1527. SendInfo("PRIVMSG " & channel & " :Canada" & vbCrLf, SendBytes, tnSocket)
  1528. Return True
  1529. End If
  1530. 'NO CMD FOUND FOR MASTER
  1531. Return False
  1532. Else
  1533. 'OTHER USERS GO HERE PROB CONVERT THIS TO A DB CALL
  1534. 'NO CMD FOUND FOR ANYONE
  1535. Return False
  1536. End If
  1537. End Function
  1538.  
  1539. Public Function CtcpReply(ByVal message As String, ByVal nickname As String) As Boolean
  1540. 'FUNCTION NAME: CtcpReply
  1541. 'INPUT : Message from channel, Nickname from channel
  1542. 'EXISTANCE : Replies to the user any ctcp request
  1543. 'OUTPUT : The nesscary request response over ctcp
  1544.  
  1545. If RegXPChecker("\001PING (?<ts>.+)\001", message) Then
  1546. Dim epochtime As String
  1547. Dim ddate As Date
  1548. ddate = "1/1/1970"
  1549. epochtime = CStr(DateDiff(DateInterval.Second, CDate("1/1/1970"), Now.ToUniversalTime))
  1550. SendInfo("NOTICE " & nickname & " :" & Chr(1) & "PING" & " " & epochtime & Chr(1), SendBytes, tnSocket)
  1551. Return True
  1552. End If
  1553.  
  1554. If RegXPChecker("\001VERSION\001", message) Then
  1555. SendInfo("NOTICE " & nickname & " :" & Chr(1) & "VERSION " & "Easy WinDrop " & 1 & Chr(1), SendBytes, tnSocket)
  1556. Return True
  1557. End If
  1558.  
  1559. If RegXPChecker("\001TIME\001", message) Then
  1560. SendInfo("NOTICE " & nickname & " :" & Chr(1) & "TIME" & " " & Now.Date.DayOfWeek.ToString & " " & Now.ToUniversalTime & " " & Now.Year & Chr(1), SendBytes, tnSocket)
  1561. Return True
  1562. End If
  1563. Return False
  1564. End Function
  1565.  
  1566. Public Function SetNickOnServer(ByRef tnSocket As Socket) As Boolean
  1567. 'FUNCTION NAME: SetNickOnServer
  1568. 'INPUT : Nothing
  1569. 'EXISTANCE : Sets the nick and user pref stats
  1570. 'OUTPUT : Data to server about this connect to log in
  1571.  
  1572. If LocalFirstSW = True Then
  1573. SendInfo("NICK " & CurrBotName & vbCrLf, SendBytes, tnSocket)
  1574. SendInfo("USER EasyWinDrop 8 * : EasyWinDrop 1.0" & vbCrLf, SendBytes, tnSocket)
  1575. ConnectedToServer = True
  1576. LocalFirstSW = False
  1577. Return True
  1578. End If
  1579.  
  1580. If ChannelJoinSW = True Then
  1581. Wait(3000)
  1582. 'CHANNEL JOIN
  1583. 'InitialJoin()
  1584. ChannelJoinSW = False
  1585. JoinAnswer = True
  1586. Return True
  1587. End If
  1588. Return False
  1589. End Function
  1590.  
  1591. Public Function PingServer(ByVal RecvString) As Boolean
  1592. 'FUNCTION NAME: PingServer
  1593. 'INPUT : Recv Data From Socket
  1594. 'EXISTANCE : Pings server to maintain connecitong
  1595. 'OUTPUT : Pong reply
  1596.  
  1597. If RegXPChecker("^PING \:(?<key>.+)", RecvString) Then
  1598. Dim re As New Regex("PING \:(?<key>.+)")
  1599. Dim item
  1600.  
  1601. mt = re.Match(RecvString)
  1602. item = mt.Groups("key").ToString
  1603. SendInfo("PONG :" & item & vbCrLf, SendBytes, tnSocket)
  1604. TheTextBox.AppendText("PONG :" & item & vbCrLf)
  1605. RecvString = ""
  1606. item = Nothing
  1607. Return True
  1608. End If
  1609. Return False
  1610. End Function
  1611.  
  1612. Public Function InitialJoin() As Boolean
  1613. 'FUNCTION NAME: InitialJoin
  1614. 'INPUT : Nothing
  1615. 'EXISTANCE : Selects channels and joins then
  1616. 'OUTPUT : Joined channel
  1617.  
  1618. 'CHANNEL INNER JOIN
  1619. 'SELECT tblbots.idnum, tblchannellist.ChannelName
  1620. 'FROM tblbots INNER JOIN tblchannellist ON tblbots.idnum = tblchannellist.BotID
  1621. 'WHERE (((tblbots.idnum)=1));
  1622.  
  1623. SQL = "SELECT ChannelName,AutoOp FROM tblchannellist WHERE BotID=" & BotID
  1624.  
  1625. Dim conn As New MySqlConnection
  1626. Dim myCommand As New MySqlCommand
  1627. Dim myReader As MySqlDataReader
  1628.  
  1629. conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
  1630.  
  1631. Try
  1632. conn.Open()
  1633.  
  1634. Try
  1635. myCommand.Connection = conn
  1636. myCommand.CommandText = SQL
  1637. myReader = myCommand.ExecuteReader
  1638. Dim reply As String = ""
  1639.  
  1640. While myReader.Read
  1641. reply = nz(myReader.GetValue(0), "")
  1642. SendInfo("JOIN " & reply, SendBytes, tnSocket)
  1643. End While
  1644.  
  1645. Catch myerror As MySqlException
  1646. MsgBox("There was an error reading from the database: " & myerror.Message)
  1647. Return False
  1648. End Try
  1649. Catch myerror As MySqlException
  1650. MsgBox("Error connecting to the database: " & myerror.Message)
  1651. Return False
  1652. Finally
  1653. If conn.State <> ConnectionState.Closed Then conn.Close()
  1654. End Try
  1655. Return True
  1656. End Function
  1657.  
  1658. Public Function Quit(ByRef RecvString As String, ByVal ThreadID As Long) As Boolean
  1659. 'FUNCTION NAME: Quit
  1660. 'INPUT : Recv Data,TheadID
  1661. 'EXISTANCE : Kills bot through proto
  1662. 'OUTPUT : sends quit cmd if its a panel kill, sends sig term to text box to remove
  1663.  
  1664. 'PANEL KILL
  1665. Dim RegExp As String = ""
  1666.  
  1667. If ThreadID = ThreadKillID And Not ThreadID = 0 Then
  1668. ' SendInfo("QUIT :Easy Win Drop Panel Kill" & vbCrLf, SendBytes, tnSocket)
  1669. Wait(2000)
  1670. Return False
  1671. End If
  1672.  
  1673. 'SERVER DISCONNECT
  1674. RegExp = "ERROR \:Closing Link: .+"
  1675. If RegXPChecker(RegExp, RecvString) Then
  1676. 'SEND SIGTERM TO TEXTBOX
  1677. TheTextBox.AppendText("CLOSING:" & ThreadID)
  1678. 'DETERMINE IF BOT NEEDS RECONNECT
  1679.  
  1680. If ExitSW Then
  1681. LocalFirstSW = True
  1682. ChannelJoinSW = True
  1683. tnSocket.Close()
  1684. Return True
  1685. End If
  1686.  
  1687. Quit = False
  1688. RecvString = ""
  1689. Exit Function
  1690. End If
  1691. Return False
  1692. End Function
  1693.  
  1694. Public Function RandomNumber(ByVal MaxNumber As Integer, Optional ByVal MinNumber As Integer = 0) As Integer
  1695. 'FUNCTION NAME: RandomNumber
  1696. 'INPUT : MaxNumber,MinNumber
  1697. 'EXISTANCE : Gens random number
  1698. 'OUTPUT : A random number
  1699.  
  1700. 'initialize random number generator
  1701. 'if passed incorrect arguments, swap them
  1702. 'can also throw exception or return 0
  1703.  
  1704. If MinNumber > MaxNumber Then
  1705. Dim t As Integer = MinNumber
  1706. MinNumber = MaxNumber
  1707. MaxNumber = t
  1708. End If
  1709. Return rndNum.Next(MinNumber, MaxNumber)
  1710. End Function
  1711. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement