Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Net.Sockets
- Imports System.Net
- Imports System.Text
- Imports System.Text.RegularExpressions
- Imports System.IO
- Imports MySql.Data.MySqlClient
- Imports System.Threading
- Imports System.Collections.Generic
- Imports System.Reflection
- Imports Google.Apis.Auth.OAuth2
- Imports Google.Apis.Services
- Imports Google.Apis.Upload
- Imports Google.Apis.Util.Store
- Imports Google.Apis.YouTube.v3
- Imports Google.Apis.YouTube.v3.Data
- Imports System.Web
- Public Class EggDropBotClasses
- 'Socket Stuff
- Public tnSocket As Socket
- Public SendBytes As [Byte]()
- 'Class textbox to assign text to send back to
- Public TheTextBox As TextBox
- 'BOT SPECIFIC INFO
- Public ThreadID As Integer
- Public LocalFirstSW As Boolean
- Public ChannelJoinSW As Boolean
- Public ExitSW As Boolean
- Public BotName As String
- Public cmdPrefix As Char
- Public Record As String
- Public MasterAuth As Boolean
- Public Master As Boolean = False
- Public BotID As Long
- Public LowerLevel As Boolean = False
- Public ServerName As String
- Public rndNum As New Random(System.DateTime.Now.Millisecond)
- 'Uni Class calls
- Public AclClass As New Acl
- Public ChannelCommandClass As New ChannelCommand
- Public MathChannelClass As New MathCheckClass
- 'CLASS SPECIFIC FUNCS
- Public Function ConnectBot(ByVal threadID) As Object
- 'FUNCTION NAME:ConnectBot
- 'INPUT :Thread ID as object
- 'EXISTANCE :Main Engine
- 'OUTPUT :Anything
- 'INSTANCE CLASS CHILD OBJECTS
- ChannelCommandClass.CmdPrefix = cmdPrefix
- MathChannelClass.cmdPrefix = cmdPrefix
- threadID = My.Settings.ThreadID
- 'DECLARE SOCKET VARS
- Dim RecvString As String = String.Empty
- Dim NumBytes As Integer = 0
- Dim RecvBytes(255) As [Byte]
- Dim nickname, ident, hostname, command2, channel, message
- Dim regexp As String
- Dim mythreatstarted As Boolean = False
- message = ""
- RecvString = ""
- tnSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
- Dim x As System.Threading.Thread
- While True
- Try
- If (tnSocket.Connected = False) Then
- tnSocket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
- tnSocket.Connect(currServer, PPort)
- If mythreatstarted = False Then
- x = New Thread(AddressOf PingServerWait)
- x.Start()
- mythreatstarted = True
- End If
- End If
- Do
- If NumBytes < 256 Then
- NumBytes = tnSocket.Receive(RecvBytes, RecvBytes.Length, 0)
- RecvString = Trim(RecvString + Encoding.ASCII.GetString(RecvBytes, 0, NumBytes))
- TheTextBox.AppendText(RecvString)
- Else
- NumBytes = 0 'RESET
- End If
- Loop While NumBytes = 256
- 'WE NOW HAVE RECV DATA
- While Not RecvString = "" Or ConnectedToServer = False
- 'DETERMINE IF WE HAVE TO QUIT OR EXIT BY SERVER OR CMD
- If Quit(RecvString, threadID) = True Then
- Exit While
- End If
- 'SERVER PING
- If PingServer(RecvString) Then
- End If
- 'SERVER SEND 004 WE NOW HAVE CONNECTED TO IT
- If InStr(RecvString, "004") > 0 And ConnectedToServer = False Then
- ConnectedToServer = True
- End If
- 'DETERMINE IF CONNECTED
- If ConnectedToServer Then
- '#############################
- '#DETERMINE Notice #
- '#############################
- regexp = "^\:(?<nickname>.+?)\!(?<ident>.+?)\@(?<hostname>.+?) NOTICE (?<user>.+) \:(?<message>.+)."
- Debug.Print(RecvString)
- If (IrcInputCheck(RecvString, regexp)) Then
- Dim re As New Regex(regexp)
- Dim user As String
- 'CHAT GRABBER
- mt = re.Match(RecvString)
- nickname = mt.Groups("nickname").ToString
- ident = mt.Groups("ident").ToString
- hostname = mt.Groups("hostname").ToString
- message = mt.Groups("message").ToString
- user = mt.Groups("user").ToString
- 'THIS WILL NEED TO BE FIXED BETTER
- If InStr(nickname, "Serv") > 0 Or InStr(nickname, "serv") > 0 Then
- RecvString = ""
- Else
- 'SET PASS NOTICE
- If RegXPChecker("^set pass:(?<item>.+) (?<item2>.+)", message) Then
- Dim item, item2 As String
- re = New Regex("^set pass:(?<item>.+) (?<item2>.+)")
- mt = re.Match(message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- If item = "" Or item2 = "" Then
- SendInfo("NOTICE " & nickname & " :Invalid syntax " & item & "." & vbCrLf, SendBytes, tnSocket)
- Else
- item2 = GenerateHash(item2)
- Debug.Print(item2)
- item2 = QueryClean(item2)
- item = QueryClean(item)
- SQL = "UPDATE tblauth SET Password=""" & QueryClean(item2) & """ WHERE BotID=" & BotID & " AND UserName=""" & QueryClean(item) & """"
- If UpdateRecords(SQL, "Set Pass Hash") = False Then
- Return False
- End If
- End If
- End If
- 'AUTH NOTICE
- If RegXPChecker("^auth:(?<item>.+)", message) Then
- Dim item As String
- re = New Regex("^auth:(?<item>.+)")
- mt = re.Match(message)
- item = mt.Groups("item").ToString
- SQL = "SELECT UserName FROM tblAuth Where BotID=" & BotID & " AND UserName=""" & QueryClean(nickname) & """"
- If CheckIfUserExists(nickname, SQL, BotID) Then
- item = GenerateHash(item)
- Debug.Print(item)
- If AclClass.PasswordVerification(nickname, BotID, item) Then
- SendInfo("NOTICE " & nickname & " :Authenticated" & vbCrLf, SendBytes, tnSocket)
- nickname = QueryClean(nickname)
- SQL = "UPDATE tblauth SET IsAuthed=1 WHERE botID=" & BotID & " AND UserName=""" & QueryClean(nickname) & """"
- If UpdateRecords(SQL, "Auth") Then
- End If
- Else
- SendInfo("NOTICE " & nickname & " :Invalid password" & vbCrLf, SendBytes, tnSocket)
- End If
- Else
- Return True
- End If
- End If
- End If
- 'Check if user is in user list
- RecvString = ""
- End If
- '#####################################
- '#DETERMINE Private Message to bot #
- '#####################################
- ':MrTwig!n=Jaw@unaffiliated/jawster NICK :Twig-Away
- ':ioudas!n=gc@cpe-74-75-90-244.maine.res.rr.com PRIVMSG assbott2 :hey
- regexp = "^\:(?<nickname>.+?)\!(?<ident>.+?)\@(?<hostname>.+?) PRIVMSG (?<user>.+?) \:(?<message>.+)."
- If (IrcInputCheck(RecvString, regexp)) Then
- Dim re As New Regex(regexp)
- Dim user As String
- mt = re.Match(RecvString)
- nickname = mt.Groups("nickname").ToString
- ident = mt.Groups("ident").ToString
- hostname = mt.Groups("hostname").ToString
- channel = "#" & mt.Groups("channel").ToString
- message = mt.Groups("message").ToString
- user = mt.Groups("user").ToString
- If InStr(user, "#") > 0 Then
- Else
- If InStr(message, "PING") > 0 Or InStr(message, "TIME") > 0 Or InStr(message, "VERSION") > 0 Then
- If CtcpReply(message, nickname) Then
- End If
- Else
- RecvString = "PING"
- End If
- End If
- End If
- '#####################################
- '#DETERMINE Chan/Server Kick Commands#
- '#####################################
- regexp = "^\:(?<nickname>.+?)\!(?<ident>.+?)\@(?<hostname>.+?) (?<command>.+?) #(?<channel>.+?) (?<userkicked>.+) \:(?<message>.+)."
- If IrcInputCheck(RecvString, regexp) Then
- Dim re As New Regex(regexp)
- mt = re.Match(RecvString)
- nickname = mt.Groups("nickname").ToString
- ident = mt.Groups("ident").ToString
- hostname = mt.Groups("hostname").ToString
- command2 = mt.Groups("command").ToString
- channel = "#" & mt.Groups("channel").ToString
- message = mt.Groups("message").ToString
- Dim botProtectRejoin As New BotProtection
- Select Case command2
- Case "KICK"
- 'run kick code
- If (botProtectRejoin.DetermineChannelJoin(BotID, channel)) Then
- SendInfo("JOIN " & channel, SendBytes, tnSocket)
- End If
- 'RecvString = ""
- Case "MODE"
- 'wee
- 'Mode protection goes here
- If botProtectRejoin.DetectBanAgainstMe(channel, True, tnSocket, SendBytes, "greg") Then
- End If
- End Select
- If (AclClass.IsMaster(nickname, BotID)) Then
- Master = True
- Else
- Master = False
- End If
- End If
- '####################################
- '#DETERMINE Chan/Server Commands #
- '####################################
- 'ioudas^ desktop!~ioudas@cpe-74-75-67-224.maine.res.rr.com PART #partyonirc :Closing Window
- 'ioudas^ desktop!~ioudas@cpe-74-75-67-224.maine.res.rr.com JOIN :#partyonirc
- regexp = "^\:(?<nickname>.+?)\!(?<ident>.+?)\@(?<hostname>.+?) (?<command>.+?) \:#(?<channel>.+?)"
- If IrcInputCheck(RecvString, regexp) Then
- Dim re As New Regex(regexp)
- mt = re.Match(RecvString)
- nickname = mt.Groups("nickname").ToString
- ident = mt.Groups("ident").ToString
- hostname = mt.Groups("hostname").ToString
- command2 = mt.Groups("command").ToString
- message = mt.Groups("message").ToString
- If Not (nickname = BotName) Then
- If (command2 = "JOIN") = True Then
- 'SQL LOOKUP
- Dim joinreply As String
- joinreply = GetField("select message, rand() as r from tblusergems WHERE BotID=" & BotID & " AND channel=""" & channel & """ And username = """ & nickname & """ order by r limit 1", "message", "message")
- If (joinreply = "") = False Then
- SendInfo("PRIVMSG " & channel & " : " & joinreply & vbCrLf, SendBytes, tnSocket)
- End If
- End If
- End If
- End If
- regexp = "^\:(?<nickname>.+?)\!(?<ident>.+?)\@(?<hostname>.+?) (?<command>.+?) #(?<channel>.+?) \:(?<message>.+)."
- If (IrcInputCheck(RecvString, regexp)) Then
- Dim re As New Regex(regexp)
- mt = re.Match(RecvString)
- nickname = mt.Groups("nickname").ToString
- ident = mt.Groups("ident").ToString
- hostname = mt.Groups("hostname").ToString
- command2 = mt.Groups("command").ToString
- channel = "#" & mt.Groups("channel").ToString
- message = mt.Groups("message").ToString
- If (AclClass.IsMaster(nickname, BotID)) Then
- Master = True
- Else
- Master = False
- End If
- 'RECONNECT COMMAND.
- If message = cmdPrefix & "reconnect" Then
- LocalFirstSW = True
- ChannelJoinSW = True
- tnSocket.Close()
- ConnectedToServer = False
- x.Abort()
- Exit While
- End If
- 'If :gregc!n=gc@cpe-74-75-90-244.maine.res.rr.com QUIT :
- If command2 = "QUIT" Then
- If AclClass.IsUserAuthed(nickname, BotID, channel) Then
- SQL = "UPDATE tblauth SET IsAuthed=0 WHERE BotID=" & BotID & " AND UserName=""" & QueryClean(nickname) & """"
- If UpdateRecords(SQL, "QUIT AUTH") Then
- End If
- Else
- End If
- End If
- 'DB INSERT OF RCVD DATA TO USER CHAT TABLE
- If Record Then
- If Not InStr(message, cmdPrefix & "last") > 0 Then
- If InStr(message, cmdPrefix & "seen") > 0 Then
- Else
- If RecordInsert(QueryClean(channel), QueryClean(nickname), QueryClean(message), BotID, ServerName) = False Then
- End If
- End If
- End If
- End If
- 'Channel Text
- If (ChannelGrab(message, channel, nickname)) Then
- RecvString = ""
- message = ""
- Exit While
- End If
- 'CTCP CHAN PING REPLY
- If CtcpReply(message, nickname) Then
- RecvString = ""
- Exit While
- End If
- If Len(message) > 0 Then
- RecvString = ""
- Exit While
- End If
- End If
- End If
- '####################################
- '#On server channel commands #
- '####################################
- 'PAST CHANNEL COMMANDS Server commands go here
- If RegXPChecker("\:.+ 433 \* .+ \:.+", RecvString) Then
- Dim newnick As String
- newnick = "testbot"
- SendInfo("NICK " & newnick & vbCrLf, SendBytes, tnSocket)
- End If
- Debug.Print(RecvString)
- If InStr(RecvString, "376") Then
- Debug.Print("")
- End If
- If RegXPChecker("\:.+ 376 .+", RecvString) Then
- InitialJoin()
- End If
- ':irc.mad-season.com 376 assbott2 :End of /MOTD command.
- 'ASSIGN SERVER NICK
- 'ALSO HANDLES CHANNEL JOINS
- SetNickOnServer(tnSocket)
- RecvString = ""
- End While
- Catch myerror As Exception
- 'NEED A BETTER METHOD FOR HANDLING
- Debug.Print(myerror.GetHashCode())
- Debug.Print(myerror.Message)
- Debug.Print(myerror.ToString)
- Dim thetime As String = Format(Today, "yyyy/MM/dd")
- Dim errorHandleStr As String = QueryClean(myerror.ToString)
- SQL = "INSERT INTO tblerrorlog(botid, ErrorNumber, ErrorMessage,HappenedWhen,BotName) VALUES(" & BotID & ", """ & errorHandleStr & """, """ & myerror.Message & " " & message & """,""" & thetime & """,""" & BotName & """)"
- Try
- If InsertRecords(SQL, "ErrorLog") Then
- End If
- Catch ex As Exception
- End Try
- Select Case myerror.GetHashCode()
- Case 1997173
- Exit While
- End Select
- End Try
- End While
- Command = Nothing
- RecvString = Nothing
- ConnectedToServer = False
- tnSocket.Close()
- tnSocket = Nothing
- RecvString = Nothing
- ThreadKillID = 9999
- GC.Collect()
- Return "Dead"
- End Function
- Private Function ChannelGrab(ByVal Message As String, ByVal channel As String, ByVal nickname As String) As Boolean
- 'FUNCTION NAME:ChannelGrab
- 'INPUT :Message, Channel, Nick
- 'EXISTANCE :Grabs channel text and determines if command has been issued
- 'OUTPUT :true or false of a command is issues
- 'PP Note :This also can do many things such as send to channels etc.
- Dim re As New Regex("")
- Dim mt As Match
- Dim item, item2, result
- '###################################
- '#DETERMINE USER LEVEL AND AUTH #
- '###################################
- Dim authed As Boolean = False
- If AclClass.IsUserAuthed(nickname, BotID, channel) Then
- authed = True
- End If
- 'TEXT CMD SPECS
- Debug.Print("CHANNEL GRAB THREAD INFO")
- Debug.Print(ThreadID)
- Debug.Print(CurrBotName)
- Debug.Print(Message)
- 'DETERMINE COMMAND LEVEL
- If Master = True Or Master = False And authed = True Or authed = False Then
- If ChannelCommandClass.CheckCommandInChannel(re, Message, tnSocket, SendBytes, BotID, BotName, channel) = True Then
- Return True
- End If
- If MathChannelClass.CheckMathChannel(re, Message, tnSocket, SendBytes, BotID, BotName, channel) Then
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "set pass (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "set pass (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If item = "" Then
- SendInfo("PRIVMSG " & channel & " :Please include a username when setting a password." & item & vbCrLf, SendBytes, tnSocket)
- Else
- SendInfo("NOTICE " & nickname & " :Please notice me set pass:UserName PasswordHere for user " & item & "." & vbCrLf, SendBytes, tnSocket)
- End If
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "ident$", Message) Then
- re = New Regex("^" & cmdPrefix & "ident")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- Dim serverip As String
- serverip = GetField("SELECT ServerIP FROM tblserverlist WHERE BotID=" & BotID & " AND ServerIP=""" & currServer & """", "ServerIP", "GetIP")
- Debug.Print(address.ToString)
- If serverip = "" Then
- Return False
- End If
- Dim reply As String = GetField("SELECT Ident FROM tblserverlist WHERE BotID=" & BotID & " AND ServerIP=""" & currServer & """", "Ident", "Ident")
- If reply = "" Then
- Return False
- End If
- SendInfo(reply, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "sha (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "sha (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If item = "" Then
- SendInfo("PRIVMSG " & channel & " :Please include a username when setting a password." & item & vbCrLf, SendBytes, tnSocket)
- Else
- SendInfo("PRIVMSG " & channel & " :" & GenerateHash(item) & vbCrLf, SendBytes, tnSocket)
- End If
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "nick (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "nick (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("NICK " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "delserver (?<item>.+?)", Message) Then
- re = New Regex("^" & cmdPrefix & "delserver (?<item>.+?)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("PRIVMSG " & channel & " :Deleted server" & item & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "addserver (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "addserver (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If AddServer(item, GetBotID(BotName), "6667", 1, 1) Then
- End If
- SendInfo("PRIVMSG " & channel & " :Added server " & item & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^http://(?<site>.+)", Message) Then
- re = New Regex("^http://(?<site>.+)")
- mt = re.Match(Message)
- item = mt.Groups("site").ToString
- Dim request As WebRequest = WebRequest.Create("http://" & item)
- Dim webresponse As WebResponse = request.GetResponse()
- Dim sr As System.IO.StreamReader = New System.IO.StreamReader(webresponse.GetResponseStream())
- Dim response As String = sr.ReadToEnd
- Dim pattern As String = "(?<=\<title\>)[a-zA-Z0-9\s]*(?=\</title\>)"
- Dim m As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(response, pattern)
- Dim result2 As String = m.Value
- Dim reply
- If result2 = "" = False Then
- reply = "PRIVMSG " & channel & " :" & result2
- SendInfo(reply, SendBytes, tnSocket)
- End If
- End If
- If RegXPChecker("^https://(?<site>.+)", Message) Then
- re = New Regex("^https://(?<site>.+)")
- mt = re.Match(Message)
- item = mt.Groups("site").ToString
- Dim request As WebRequest = WebRequest.Create("https://" & item)
- Dim webresponse As WebResponse = request.GetResponse()
- Dim sr As System.IO.StreamReader = New System.IO.StreamReader(webresponse.GetResponseStream())
- Dim response As String = sr.ReadToEnd
- Dim pattern As String = "(?<=\<title\>)[a-zA-Z0-9\s]*(?=\</title\>)"
- Dim m As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(response, pattern)
- Dim result2 As String = m.Value
- Dim reply
- If result2 = "" = False Then
- reply = "PRIVMSG " & channel & " :" & result2
- SendInfo(reply, SendBytes, tnSocket)
- End If
- End If
- If RegXPChecker("^" & cmdPrefix & "quit (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "quit (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("QUIT :" & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "quit$", Message) Then
- If nickname = "MrTwig" Or nickname = "MrPenguin" Then
- SendInfo("PRIVMSG " & channel & " :fag", SendBytes, tnSocket)
- Return True
- End If
- SendInfo("QUIT :" & "Good Bye", SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "kick (?<item>.+) (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "kick (?<item>.+?) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- SendInfo("KICK " & channel & " " & item & " :" & item2, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "kick (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "kick (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("KICK " & channel & " " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "mode (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "mode (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("MODE " & channel & " " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "op (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "op (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("MODE " & channel & " +o " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "deop (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "deop (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("MODE " & channel & " -o " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "voice (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "voice (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("MODE " & channel & " +v " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "help (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "help (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- 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) & """));"
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = "Command:" & nz(myReader.GetValue(1), "")
- reply = reply & " Syntax:" & nz(myReader.GetValue(3), "")
- Debug.Print(reply)
- If reply = "Command: Syntax:" Then
- Else
- SendInfo("NOTICE " & nickname & " :" & reply, SendBytes, tnSocket)
- Wait(2000)
- End If
- End While
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "help$", Message) Then
- 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 & "));"
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = "Command:" & nz(myReader.GetValue(1), "")
- reply = reply & " Syntax:" & nz(myReader.GetValue(3), "")
- If reply = "Command: Syntax:" Then
- Else
- SendInfo("NOTICE " & nickname & " :" & reply, SendBytes, tnSocket)
- Wait(2000)
- End If
- End While
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "errorlog (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "errorlog (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If RegXPChecker(ZeroTo9Regex, item) Then
- item = System.Convert.ToInt32(item)
- If item < 0 Then
- Return False
- End If
- Else
- Return False
- End If
- SQL = "SELECT IDNum,ErrorNumber,HappenedWhen FROM tblerrorlog WHERE BotID=" & BotID & " ORDER BY IDNum DESC LIMIT " & QueryClean(item)
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = "Error Num:" & nz(myReader.GetValue(1), "") & " at:" & nz(myReader.GetValue(2), "")
- reply = Replace(reply, vbCrLf, "")
- Debug.Print(reply)
- If reply = "Error Num: at:" Then
- Return True
- End If
- SendInfo("PRIVMSG " & channel & " :" & reply, SendBytes, tnSocket)
- Wait(2200)
- End While
- Return True
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- SendInfo("PRIVMSG " & channel & " :Hooray no errors! you must of fixed me!", SendBytes, tnSocket)
- Return False
- End If
- If RegXPChecker("^" & cmdPrefix & "delerrorlog$", Message) Then
- If DeleteRecords("DELETE FROM tblerrorlog WHERE BotID=" & BotID, "Error log Del") Then
- End If
- SendInfo("PRIVMSG " & channel & " :Deleted error log", SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "calc (?<item>.+)\*(?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "calc (?<item>.+)\*(?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- If RegXPChecker(ZeroTo9Regex, item) = False Or RegXPChecker(ZeroTo9Regex, item2) = False Then
- Return False
- End If
- SendInfo("PRIVMSG " & channel & " :Answer: " & item * item2, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "setupftp (?<item>.+) (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "setupftp (?<item>.+) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- If RegXPChecker(ZeroTo9Regex, item2) = False Then
- Return False
- End If
- SQL = "INSERT INTO tblP2PServers(Server,Port,Proto,BotID) VALUES(""" & item & """,""" & item2 & """,""" & "FTP" & """," & BotID & ")"
- If InsertRecords(SQL, "InsertFTP") Then
- End If
- SendInfo("NOTICE " & nickname & " :to set a username notice me: SetFtpUser <username>", SendBytes, tnSocket)
- SendInfo("NOTICE " & nickname & " :to set a username notice me: SetFtpPass <pass>", SendBytes, tnSocket)
- SendInfo("PRIVMSG " & channel & " :Added ftp server " & item & " on port " & item2, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "setupssh (?<item>.+) (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "setupssh (?<item>.+) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- If RegXPChecker(ZeroTo9Regex, item2) = False Then
- Return False
- End If
- SQL = "INSERT INTO tblP2PServers(Server,Port,Proto,BotID) VALUES(""" & item & """,""" & item2 & """,""" & "FTP" & """," & BotID & ")"
- If InsertRecords(SQL, "InsertFTP") Then
- End If
- SendInfo("NOTICE " & nickname & " :to set a username notice me: SetFtpUser <username>", SendBytes, tnSocket)
- SendInfo("NOTICE " & nickname & " :to set a username notice me: SetFtpPass <pass>", SendBytes, tnSocket)
- SendInfo("PRIVMSG " & channel & " :Added ftp server " & item & " on port " & item2, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "setuptracker (?<item>.+) (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "setuptracker (?<item>.+) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- SQL = "INSERT INTO tblP2PServers(Server,Port,Proto,BotID) VALUES(""" & item & """,""" & item2 & """,""" & "BITTORRENT" & """," & BotID & ")"
- If InsertRecords(SQL, "InsertFTP") Then
- End If
- SendInfo("PRIVMSG " & channel & " :Added torrent tracker: " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "mergetracker (?<item>.+) (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "mergetracker (?<item>.+) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- SQL = "INSERT INTO tblP2PServers(Server,Port,Proto,BotID) VALUES(""" & item & """,""" & item2 & """,""" & "BITTORRENT" & """," & BotID & ")"
- If InsertRecords(SQL, "InsertFTP") Then
- End If
- SendInfo("PRIVMSG " & channel & " :Added torrent tracker: " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "devoice (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "devoice (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("MODE " & channel & " -v " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "ban (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "ban (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("MODE " & channel & " +b " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "last (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "last (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- 'MAKE DB CALL
- SQL = "SELECT message FROM tbluserchat WHERE tbluserchat.Nick=""" & QueryClean(item) & """ AND tbluserchat.Channel=""" & channel & """ ORDER BY idnum DESC LIMIT 1"
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = nz(myReader.GetValue(0), "")
- End While
- If reply = "" Then
- SendInfo("PRIVMSG " & channel & " :No history for " & item, SendBytes, tnSocket)
- Else
- SendInfo("PRIVMSG " & channel & " :" & item & " said: " & reply, SendBytes, tnSocket)
- End If
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "gem (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "gem (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SQL = "INSERT INTO tbllines(botid, Command, Line) VALUES(" & BotID & ", """ & cmdPrefix & "gem" & """, """ & item & """)"
- If InsertRecords(SQL, "GEM") Then
- End If
- Return True
- End If
- 'If RegXPChecker("^" & cmdPrefix & "joinmsg (?<item>.+)", Message) Then
- ' re = New Regex("^" & cmdPrefix & "joinmsg (?<item>.+)")
- ' mt = re.Match(Message)
- ' item = mt.Groups("item").ToString
- ' SQL = "INSERT INTO tblusergems(botid, username, channel, message) VALUES(" & BotID & ", """ & nickname & """, """ & channel & """,""" & item & """)"
- ' If InsertRecords(SQL, "joinmsg") Then
- ' End If
- ' Return True
- 'End If
- If RegXPChecker("^" & cmdPrefix & "joinmsg (?<item>[\w&.\-]*):(?<item2>.+[\w&.\-]*)", Message) Then
- re = New Regex("^" & cmdPrefix & "joinmsg (?<item>[\w&.\-]*):(?<item2>.+[\w&.\-]*)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- SQL = "INSERT INTO tblusergems(botid, username, channel, message) VALUES(" & BotID & ", """ & QueryClean(item) & """, """ & channel & """,""" & QueryClean(item2) & """)"
- If InsertRecords(SQL, "joinmsg") Then
- SendInfo("PRIVMSG " & channel & " :Added join msg " & item, SendBytes, tnSocket)
- End If
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "gem$", Message) Then
- Dim maxint As String = "0"
- Dim minint As String = "0"
- maxint = GetField("SELECT max(idnum) FROM tbllines", maxint, "Max")
- minint = GetField("SELECT min(idnum) FROM tbllines", minint, "min") - 1
- SQL = "SELECT Line FROM tbllines WHERE IDNum>=" & RandomNumber(maxint, minint)
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = "PRIVMSG " & channel & " :" & nz(myReader.GetValue(0), "")
- Exit While
- End While
- SendInfo(reply, SendBytes, tnSocket)
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "8ball (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "8ball (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- Dim EightBallResponse(20) As String
- EightBallResponse(0) = "You may rely on it"
- EightBallResponse(1) = "Yes - definitely"
- EightBallResponse(2) = "Yes"
- EightBallResponse(3) = "Without a doubt"
- EightBallResponse(4) = "Very doubtful"
- EightBallResponse(5) = "Signs point to yes"
- EightBallResponse(6) = "Reply hazy, try again"
- EightBallResponse(7) = "Outlook not so good"
- EightBallResponse(8) = "Outlook good"
- EightBallResponse(9) = "My sources say no"
- EightBallResponse(10) = "My reply is no"
- EightBallResponse(11) = "Most likely"
- EightBallResponse(12) = "It is decidedly so"
- EightBallResponse(13) = "It is certain"
- EightBallResponse(14) = "Don't count on it"
- EightBallResponse(15) = "Concentrate and ask again"
- EightBallResponse(16) = "Cannot predict now"
- EightBallResponse(17) = "Better not tell you now"
- EightBallResponse(18) = "Ask again later"
- EightBallResponse(19) = "As I see it, yes"
- Dim rndnumeightball As Integer
- rndnumeightball=randomnumber(19,0)
- Debug.Print(rndnumeightball)
- SendInfo("PRIVMSG " & channel & " :" & EightBallResponse(rndnumeightball),SendBytes,tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "seen (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "seen (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SQL = "SELECT TheTime,message FROM tbluserchat WHERE tbluserchat.Nick=""" & QueryClean(item) & """ AND tbluserchat.Channel=""" & QueryClean(channel) & """ ORDER BY idnum DESC LIMIT 1"
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = "PRIVMSG " & channel & " :" & item & " was last seen on: " & nz(myReader.GetValue(0), "Never") & " Saying " & nz(myReader.GetValue(1), "I Dont Exist!")
- End While
- SendInfo(reply, SendBytes, tnSocket)
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "youtube (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "youtube (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- Dim youtubeService = New YouTubeService(New BaseClientService.Initializer() With {
- .ApiKey = "AIzaSyDXLdLqJC4u15v9n3QfLc_Z7a_X_sYKmsY",
- .ApplicationName = Me.[GetType]().ToString()
- })
- Dim searchListRequest = youtubeService.Search.List("snippet")
- searchListRequest.Q = item
- 'searchListRequest.CreateRequest(SearchListResponse)
- Dim searchListResponse = searchListRequest.Execute()
- ' Replace with your search term.
- searchListRequest.MaxResults = 1
- ' Call the search.list method to retrieve results matching the specified query term.
- Dim videos As New List(Of String)()
- Dim channels As New List(Of String)()
- Dim playlists As New List(Of String)()
- Dim resultid As String = ""
- Dim resulttitle As String = ""
- ' Add each result to the appropriate list, and then display the lists of
- ' matching videos, channels, and playlists.
- For Each searchResult In searchListResponse.Items
- Select Case searchResult.Id.Kind
- Case "youtube#video"
- resulttitle = searchResult.Snippet.Title
- resultid = searchResult.Id.VideoId
- Exit For
- videos.Add([String].Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.VideoId))
- Exit Select
- Case "youtube#channel"
- channels.Add([String].Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId))
- Exit Select
- Case "youtube#playlist"
- playlists.Add([String].Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId))
- Exit Select
- End Select
- Next
- Dim reply
- If resultid = "" = False Then
- reply = "PRIVMSG " & channel & " :" & resulttitle
- SendInfo(reply, SendBytes, tnSocket)
- reply = "PRIVMSG " & channel & " :https://www.youtube.com/watch?v=" & resultid
- SendInfo(reply, SendBytes, tnSocket)
- End If
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "google (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "google (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- Dim url = "http://www.google.com/search?q=" & item & "&btnI'"
- Dim request As WebRequest = WebRequest.Create(url)
- Dim webresponse As WebResponse = request.GetResponse()
- Dim sr As System.IO.StreamReader = New System.IO.StreamReader(webresponse.GetResponseStream())
- Dim youtube As String = sr.ReadToEnd
- Dim r As New System.Text.RegularExpressions.Regex("""title"": "".*""")
- Dim matches As MatchCollection = r.Matches(youtube)
- Dim result2 = ""
- For Each itemcode As Match In matches
- result2 = itemcode.Value.Split(":").GetValue(1).Trim().TrimStart("""").TrimEnd("""")
- Next
- Dim reply
- If result2 = "" = False Then
- reply = "PRIVMSG " & channel & " :" & result2
- SendInfo(reply, SendBytes, tnSocket)
- End If
- End If
- If RegXPChecker("^" & cmdPrefix & "weather (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "weather (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- 'Dim url As String = "http://http://api.openweathermap.org/data/2.5/weather?q=" & item
- Dim url As String = "http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=" & item
- Dim webClient As System.Net.WebClient = New System.Net.WebClient()
- webClient.DownloadFile(url, "c:\bot\tmp.txt")
- Dim str2 As String = ""
- Dim xmlparse As New XmlReader
- Dim reply As String
- reply = xmlparse.ReadXML("c:\bot\tmp.txt")
- If reply = "" Or reply = "None" Then
- Return False
- End If
- reply = "PRIVMSG " & channel & " :" & reply
- SendInfo(reply, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "unban (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "unban (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("MODE " & channel & " -b " & item & "@", SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "say (?<item>.+)", Message) Then
- re = New Regex("^\" & cmdPrefix & "say (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("PRIVMSG " & channel & " :" & item & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- 'LEVEL ADDING AND GROUP CMD ADDING
- If RegXPChecker("^\" & cmdPrefix & "addlevel (?<item>.+) (?<item2>.+)", Message) Then
- re = New Regex("^\" & cmdPrefix & "addlevel (?<item>.+) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- If InStr(item, "#") > 0 Then
- Return False
- End If
- If RegXPChecker(ZeroTo9Regex, item2) = False Then
- SendInfo("PRIVMSG " & channel & " :" & item & vbCrLf, SendBytes, tnSocket)
- End If
- result = AclClass.AddUserLevel(item, BotID, channel, BotName, item2, ServerName)
- If Not result = "False" Then
- SendInfo(result, SendBytes, tnSocket)
- End If
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "addlevel (?<item>.+) ", Message) Then
- re = New Regex("^\" & cmdPrefix & "addlevel (?<item>.+)")
- mt = re.Match(Message)
- item = "#" & mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- If RegXPChecker(ZeroTo9Regex, item2) = False Then
- SendInfo("PRIVMSG " & channel & " :" & item & vbCrLf, SendBytes, tnSocket)
- End If
- result = AclClass.AddUserLevel(item, BotID, channel, BotName, item2, ServerName)
- If Not result = "False" Then
- SendInfo(result, SendBytes, tnSocket)
- End If
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "dellevel (?<item>.+?) (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "dellevel (?<item>.+?) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- SendInfo("PRIVMSG " & channel & " :Deleted level " & item & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "delcmd (?<item>.+) group (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "delcmd (?<item>.+) group (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- SendInfo("PRIVMSG " & channel & " :Deleted command group " & item2 & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "addgroup (?<item>.+?) (?<item2>.+)", Message) Then
- re = New Regex("^\" & cmdPrefix & "addgroup (?<item>.+?) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- result = AclClass.AddUserGroup(BotName, item2, BotID, channel, item, ServerName)
- If Not result = "False" Then
- SendInfo(result, SendBytes, tnSocket)
- End If
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "listgroups (?<item>.+?)", Message) Then
- re = New Regex("^\" & cmdPrefix & "listgroups (?<item>.+?)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If RegXPChecker(A2ZRegex, item) Then
- SQL = "SELECT BotGroup FROM tblaclbygroup WHERE BotID=" & BotID & " AND BotGroup=""" & item & """GROUP BY BotGroup"
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = nz(myReader.GetValue(0), "")
- SendInfo("NOTICE " & nickname & " : Group " & reply & vbCrLf, SendBytes, tnSocket)
- Wait(1000)
- End While
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- End If
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "listgroups$", Message) Then
- SQL = "SELECT BotGroup FROM tblaclbygroup WHERE BotID=" & BotID & " GROUP BY BotGroup"
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = nz(myReader.GetValue(0), "")
- SendInfo("NOTICE " & nickname & " : Group " & reply & vbCrLf, SendBytes, tnSocket)
- Wait(1000)
- End While
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "listlevels (?<item>.+?)", Message) Then
- re = New Regex("^\" & cmdPrefix & "listlevels (?<item>.+?)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If RegXPChecker(ZeroTo9Regex, item) Then
- SQL = "SELECT Level FROM tblacl WHERE BotID=" & BotID & " AND Level=""" & item & """ GROUP BY Level"
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = nz(myReader.GetValue(0), "")
- SendInfo("NOTICE " & nickname & " : Level " & reply & vbCrLf, SendBytes, tnSocket)
- Wait(1000)
- End While
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- End If
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "listlevels$", Message) Then
- SQL = "SELECT Level FROM tblacl WHERE BotID=" & BotID & " GROUP BY Level"
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = nz(myReader.GetValue(0), "")
- SendInfo("NOTICE " & nickname & " : Level " & reply & vbCrLf, SendBytes, tnSocket)
- Wait(1000)
- End While
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "delgroup (?<item>.+)", Message) Then
- re = New Regex("^\" & cmdPrefix & "delgroup (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- result = AclClass.DelUserGroup(nickname, BotID, channel, item)
- If Not result = "False" Then
- SendInfo("PRIVMSG " & channel & " :Deleted level " & item & vbCrLf, SendBytes, tnSocket)
- End If
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "setupproxy (?<item>.+?)", Message) Then
- re = New Regex("^\" & cmdPrefix & "setupproxy (?<item>.+?)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SQL = "INSERT INTO tblserverevasion(botID, ThreadID,Server,BotName) VALUES(" & BotID & ", """ & ThreadID & """, """ & item & """,""" & BotName & """)"
- InsertRecords(SQL, "SETUP PROXY")
- SendInfo("PRIVMSG " & channel & " :Added proxy " & item & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "addcmd (?<item>.+?) (?<item2>.+)", Message) Then
- re = New Regex("^\" & cmdPrefix & "addcmd (?<item>.+?) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- If RegXPChecker(ZeroTo9Regex, item2) Then
- SQL = "INSERT INTO tblbotcmdlist(botid, Command, Level) VALUES(" & BotID & ", """ & item & """, """ & item2 & """)"
- AddBotCmd(BotID, SQL)
- SendInfo("PRIVMSG " & channel & " :Added command " & item & " to level: " & item2 & vbCrLf, SendBytes, tnSocket)
- ElseIf RegXPChecker(A2ZRegex, item2) Then
- SQL = "INSERT INTO tblbotcmdlist(botID, Command,GroupName) VALUES(" & BotID & ", """ & item & """, """ & item2 & """)"
- AddBotCmd(BotID, SQL)
- SendInfo("PRIVMSG " & channel & " :Added command " & item & " to group: " & item2 & vbCrLf, SendBytes, tnSocket)
- End If
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "delcmd (?<item>.+?) (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "delcmd (?<item>.+?) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- SendInfo("PRIVMSG " & channel & " :Deleted command level " & item & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "wa (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "wa (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- Dim Engine As New WolframAlphaEngine("R7HWET-RLWT2WRUVL")
- Dim WolframAlphaApplicationID As String = "Greg"
- 'Define what we want to search for.
- Dim WolframAlphaSearchTerms As New WolframAlphaQuery
- WolframAlphaSearchTerms.APIKey = "R7HWET-RLWT2WRUVL"
- WolframAlphaSearchTerms.Query = item
- Engine.LoadResponse(WolframAlphaSearchTerms)
- 'Print out a message saying that the last task was successful.
- Dim PodNumber As Integer = 1
- Dim SubPodNumber As Integer = 1
- For Each greg As WolframAlphaPod In Engine.QueryResult.Pods
- Dim reply As String
- For Each SubItem As WolframAlphaSubPod In greg.SubPods
- If SubPodNumber = 2 Then
- reply = "PRIVMSG " & channel & " :" & SubItem.Title
- SendInfo(reply, SendBytes, tnSocket)
- reply = "PRIVMSG " & channel & " :Answer " & SubItem.PodText & " " & SubItem.PodImage.Location.ToString
- SendInfo(reply, SendBytes, tnSocket)
- Exit For
- End If
- SubPodNumber += 1
- Next
- If PodNumber = 2 Then
- Exit For
- End If
- PodNumber += 1
- Next
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "delcmd (?<item>.+?)", Message) Then
- re = New Regex("^\" & cmdPrefix & "delcmd (?<item>.+?)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item").ToString
- 'If DeleteRecords("DELETE FROM tblbotcmdlist WHERE Command=""" & item & """", "Delete botcmdlist") Then
- 'End If
- SendInfo("PRIVMSG " & channel & " :Deleted command level " & item & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "link (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "link (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("NOTICE " & item & " :Link" & BotName, SendBytes, tnSocket)
- SendInfo("PRIVMSG " & channel & " :Linked to " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "unlink (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "unlink (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("PRIVMSG " & channel & " :Linked " & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "action (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "action (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("PRIVMSG " & channel & " :" & "ACTION " & item & "", SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "topic (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "topic (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("TOPIC " & channel & " :" & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "part (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "part (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- SendInfo("PART :" & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "rejoin$", Message) Then
- SendInfo("PART :" & channel, SendBytes, tnSocket)
- SendInfo("JOIN :" & channel, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "adduserprotect (?<item>.+) (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "adduserprotect (?<item>.+) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- If (AddProtect(item, BotName, item2, channel)) Then
- End If
- SendInfo("PRIVMSG " & channel & " :" & "added user", SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "adduserprotect (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "adduserprotect (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If (AddProtect(item, BotID, BotName)) Then
- End If
- SendInfo("PRIVMSG " & channel & " :" & "Added user:" & item, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "deluserprotect (?<item>.+) (?<item2>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "deluserprotect (?<item>.+) (?<item2>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString
- If (DelProtect(item, BotName, item2, channel)) Then
- End If
- SendInfo("PRIVMSG " & channel & " :" & "deleted user", SendBytes, tnSocket)
- Return True
- Else
- If RegXPChecker("^" & cmdPrefix & "deluser (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "deluser (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If (DelProtect(item, BotName, "", channel)) Then
- End If
- SendInfo("PRIVMSG " & channel & " :" & "deleted user", SendBytes, tnSocket)
- Return True
- End If
- End If
- If RegXPChecker("^" & cmdPrefix & "deluserprotect (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "deluserprotect (?<item>.+")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- item2 = mt.Groups("item2").ToString '
- If (DelProtect(item, BotName, item2, channel)) Then
- End If
- SendInfo("PRIVMSG " & channel & " :" & "deleted user", SendBytes, tnSocket)
- Return True
- Else
- If RegXPChecker("^" & cmdPrefix & "deluser (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "deluser (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If (DelProtect(item, BotName, "", channel)) Then
- End If
- SendInfo("PRIVMSG " & channel & " :" & "deleted user", SendBytes, tnSocket)
- Return True
- End If
- End If
- If RegXPChecker("^\" & cmdPrefix & "login$", Message) Then
- SendInfo("NOTICE " & nickname & " :Please notice me auth:password" & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^\" & cmdPrefix & "mylevel$", Message) Then
- Dim Ulevel As String = ""
- Dim UAuth As String = ""
- Ulevel = GetField("SELECT Level FROM tblacl WHERE BotID=" & BotID & " AND UserAccessName=""" & nickname & """", Ulevel, "Ulevel")
- SendInfo("NOTICE " & nickname & " :you are AuthStatus at Status:" & Ulevel & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("^" & cmdPrefix & "sql (?<item>.+)", Message) Then
- re = New Regex("^" & cmdPrefix & "sql (?<item>.+)")
- mt = re.Match(Message)
- item = mt.Groups("item").ToString
- If InStr(LCase(item), "drop") > 0 Then
- SendInfo("NOTICE " & nickname & " :faggot", SendBytes, tnSocket)
- Return True
- End If
- If InStr(LCase(item), "delete") > 0 Then
- SendInfo("NOTICE " & nickname & " :faggot", SendBytes, tnSocket)
- Return True
- End If
- If InStr(LCase(item), "update") > 0 Then
- SendInfo("NOTICE " & nickname & " :faggot", SendBytes, tnSocket)
- Return True
- End If
- If InStr(LCase(item), "truncate") > 0 Then
- SendInfo("NOTICE " & nickname & " :faggot", SendBytes, tnSocket)
- Return True
- End If
- If InStr(LCase(item), "insert") > 0 Then
- SendInfo("NOTICE " & nickname & " :faggot", SendBytes, tnSocket)
- Return True
- End If
- If InStr(LCase(item), "alter") > 0 Then
- SendInfo("NOTICE " & nickname & " :faggot", SendBytes, tnSocket)
- Return True
- End If
- If InStr(LCase(item), "desc") > 0 Then
- Return True
- End If
- Dim conn As New MySqlConnection(My.Settings.ConnStr)
- Try
- conn.Open()
- Dim stm As String = item
- stm = QueryClean(stm)
- Dim cmd As MySqlCommand = New MySqlCommand(stm, conn)
- Dim reader As MySqlDataReader = cmd.ExecuteReader()
- Dim result2 As String = vbNullString
- While reader.Read()
- Dim i
- For i = 0 To reader.FieldCount - 1
- result2 = result2 & " " & String.Concat(" ", reader(i))
- Next i
- SendInfo("PRIVMSG " & channel & " :" & reader.GetInt32(0) & ": " & result2, SendBytes, tnSocket)
- result2 = ""
- End While
- reader.Close()
- Catch ex As MySqlException
- Console.WriteLine("Error: " & ex.ToString())
- Finally
- conn.Close()
- End Try
- Return True
- End If
- If Message = "gregbot" Then
- SendInfo("PRIVMSG " & channel & " :I hate you " & nickname & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If Message = "paprpushr!" Then
- SendInfo("PRIVMSG " & channel & " :I Push Paper!." & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If InStr(Message, "story") > 0 Then
- SendInfo("PRIVMSG " & channel & " :Cool story BRO, tell it again." & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If Message = "Rick Astley" Then
- SendInfo("PRIVMSG " & channel & " :Will Never Give You Up." & vbCrLf, SendBytes, tnSocket)
- SendInfo("PRIVMSG " & channel & " :Never Let You Down, Never Turn Around and Hurt You" & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If Message = "@whyistwiglame" Then
- SendInfo("PRIVMSG " & channel & " :Canada" & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If Message = "@gaydar_detect" Then
- SendInfo("PRIVMSG " & channel & " :Detecting Canadians" & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- If InStr(Message, "gay") > 0 Then
- SendInfo("PRIVMSG " & channel & " :Like Canada?" & vbCrLf, SendBytes, tnSocket)
- Return True
- End If
- Dim mygames As New Games
- mygames.BlackJack(Message)
- Return False
- Else
- Return False
- End If
- End Function
- Public Function CtcpReply(ByVal message As String, ByVal nickname As String) As Boolean
- 'FUNCTION NAME: CtcpReply
- 'INPUT : Message from channel, Nickname from channel
- 'EXISTANCE : Replies to the user any ctcp request
- 'OUTPUT : The nesscary request response over ctcp
- If RegXPChecker("\001PING (?<ts>.+)\001", message) Then
- Dim epochtime As String
- Dim ddate As Date
- ddate = "1/1/1970"
- epochtime = CStr(DateDiff(DateInterval.Second, CDate("1/1/1970"), Now.ToUniversalTime))
- SendInfo("NOTICE " & nickname & " :" & Chr(1) & "PING" & " " & epochtime & Chr(1), SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("\001VERSION\001", message) Then
- SendInfo("NOTICE " & nickname & " :" & Chr(1) & "VERSION " & "Easy WinDrop " & 1 & Chr(1), SendBytes, tnSocket)
- Return True
- End If
- If RegXPChecker("\001TIME\001", message) Then
- SendInfo("NOTICE " & nickname & " :" & Chr(1) & "TIME" & " " & Now.Date.DayOfWeek.ToString & " " & Now.ToUniversalTime & " " & Now.Year & Chr(1), SendBytes, tnSocket)
- Return True
- End If
- Return False
- End Function
- Public Function SetNickOnServer(ByRef tnSocket As Socket) As Boolean
- 'FUNCTION NAME: SetNickOnServer
- 'INPUT : Nothing
- 'EXISTANCE : Sets the nick and user pref stats
- 'OUTPUT : Data to server about this connect to log in
- If LocalFirstSW = True Then
- SendInfo("NICK " & CurrBotName & vbCrLf, SendBytes, tnSocket)
- SendInfo("USER EasyWinDrop 8 * : EasyWinDrop 1.0" & vbCrLf, SendBytes, tnSocket)
- ConnectedToServer = True
- LocalFirstSW = False
- Return True
- End If
- If ChannelJoinSW = True Then
- Wait(3000)
- 'CHANNEL JOIN
- 'InitialJoin()
- ChannelJoinSW = False
- JoinAnswer = True
- Return True
- End If
- Return False
- End Function
- Public Function PingServer(ByVal RecvString) As Boolean
- 'FUNCTION NAME: PingServer
- 'INPUT : Recv Data From Socket
- 'EXISTANCE : Pings server to maintain connecitong
- 'OUTPUT : Pong reply
- If RegXPChecker("^PING \:(?<key>.+)", RecvString) Then
- Dim re As New Regex("PING \:(?<key>.+)")
- Dim item
- mt = re.Match(RecvString)
- item = mt.Groups("key").ToString
- SendInfo("PONG :" & item & vbCrLf, SendBytes, tnSocket)
- TheTextBox.AppendText("PONG :" & item & vbCrLf)
- RecvString = ""
- item = Nothing
- Return True
- End If
- Return False
- End Function
- Public Function PingServerWait() As Boolean
- 'FUNCTION NAME: PingServer
- 'INPUT : Recv Data From Socket
- 'EXISTANCE : Pings server to maintain connecitong
- 'OUTPUT : Pong reply
- Do
- Wait(20000)
- SendInfo("PONG :" & ServerName & vbCrLf, SendBytes, tnSocket)
- TheTextBox.AppendText("PONG :" & ServerName & vbCrLf)
- Loop
- Return True
- End Function
- Public Function InitialJoin() As Boolean
- 'FUNCTION NAME: InitialJoin
- 'INPUT : Nothing
- 'EXISTANCE : Selects channels and joins then
- 'OUTPUT : Joined channel
- 'CHANNEL INNER JOIN
- 'SELECT tblbots.idnum, tblchannellist.ChannelName
- 'FROM tblbots INNER JOIN tblchannellist ON tblbots.idnum = tblchannellist.BotID
- 'WHERE (((tblbots.idnum)=1));
- SQL = "SELECT ChannelName,AutoOp FROM tblchannellist WHERE BotID=" & BotID
- Dim conn As New MySqlConnection
- Dim myCommand As New MySqlCommand
- Dim myReader As MySqlDataReader
- conn.ConnectionString = des.Decrypt(My.Settings.ConnStr)
- Try
- conn.Open()
- Try
- myCommand.Connection = conn
- myCommand.CommandText = SQL
- myReader = myCommand.ExecuteReader
- Dim reply As String = ""
- While myReader.Read
- reply = nz(myReader.GetValue(0), "")
- SendInfo("JOIN " & reply, SendBytes, tnSocket)
- End While
- Catch myerror As MySqlException
- MsgBox("There was an error reading from the database: " & myerror.Message)
- Return False
- End Try
- Catch myerror As MySqlException
- MsgBox("Error connecting to the database: " & myerror.Message)
- Return False
- Finally
- If conn.State <> ConnectionState.Closed Then conn.Close()
- End Try
- Return True
- End Function
- Public Function Quit(ByRef RecvString As String, ByVal ThreadID As Long) As Boolean
- 'FUNCTION NAME: Quit
- 'INPUT : Recv Data,TheadID
- 'EXISTANCE : Kills bot through proto
- 'OUTPUT : sends quit cmd if its a panel kill, sends sig term to text box to remove
- 'PANEL KILL
- Dim RegExp As String = ""
- If ThreadID = ThreadKillID And Not ThreadID = 0 Then
- ' SendInfo("QUIT :Easy Win Drop Panel Kill" & vbCrLf, SendBytes, tnSocket)
- Wait(2000)
- Return False
- End If
- 'SERVER DISCONNECT
- RegExp = "ERROR \:Closing Link: .+"
- If RegXPChecker(RegExp, RecvString) Then
- 'SEND SIGTERM TO TEXTBOX
- TheTextBox.AppendText("CLOSING:" & ThreadID)
- 'DETERMINE IF BOT NEEDS RECONNECT
- If ExitSW Then
- LocalFirstSW = True
- ChannelJoinSW = True
- tnSocket.Close()
- Return True
- End If
- Quit = False
- RecvString = ""
- Exit Function
- End If
- Return False
- End Function
- Public Function RandomNumber(ByVal MaxNumber As Integer, Optional ByVal MinNumber As Integer = 0) As Integer
- 'FUNCTION NAME: RandomNumber
- 'INPUT : MaxNumber,MinNumber
- 'EXISTANCE : Gens random number
- 'OUTPUT : A random number
- 'initialize random number generator
- 'if passed incorrect arguments, swap them
- 'can also throw exception or return 0
- If MinNumber > MaxNumber Then
- Dim t As Integer = MinNumber
- MinNumber = MaxNumber
- MaxNumber = t
- End If
- Return rndNum.Next(MinNumber, MaxNumber)
- End Function
- End Class
Add Comment
Please, Sign In to add comment