Frustrated IRC Bot simple question
My bot had connected to IRC fine, althouth I keep getting "Register first" it still managed to connect. But now it's refusing to connect as it's asking me for QUOTE PASS [numbers] so I wrote a bit of code to deal with this and it doesnt seem to work, I have no idea why. Here is the code & commented.
Code:
Imports System.Net.Sockets
Imports System.IO
Imports System.Net
Imports System.Threading
Module irc
Private ircServer As String = "us.undernet.org"
Private ircPort As Integer = 6667
Private ircNick As String = "mybot16"
Private ircRealName As String = "mybot"
Private ircChannel As String = "#mybot16"
Dim Invisible As Boolean
Private ircConnection As TcpClient
Private ircStream As NetworkStream
Private ircWriter As StreamWriter
Private ircReader As StreamReader
Sub main()
' Connect with the IRC server.
IrcConnection = New TcpClient(IrcServer, IrcPort)
IrcStream = IrcConnection.GetStream()
IrcReader = New StreamReader(IrcStream)
IrcWriter = New StreamWriter(IrcStream)
' Authenticate bot
ircWriter.WriteLine("USER Guest Guest Guest :bot User")
IrcWriter.Flush()
ircWriter.WriteLine("NICK " & ircNick)
ircWriter.Flush()
' Listen for commands
Do
Dim ircCommand As String
ircCommand = IrcReader.ReadLine()
Do While ircCommand IsNot Nothing
Debug.Print(ircCommand)
Dim commandParts(ircCommand.Split(" "c).Length - 1) As String
commandParts = ircCommand.Split(" "c)
If commandParts(0).Substring(0, 1) = ":" Then
commandParts(0) = commandParts(0).Remove(0, 1)
End If
If commandParts(0) = "PING" Then
' Server PING, send PONG back
IrcPing(commandParts)
End If
' Normal message
If InStr(ircCommand, "PASS") Then
quotepass(commandParts(16))
End If
Try
Dim commandAction As String = commandParts(3)
commandAction = commandAction.Replace(":", "")
Select Case commandAction
Case "!JOIN"
joinchan(commandParts(4))
End Select
Catch ex As Exception
End Try
ircCommand = ircReader.ReadLine()
ircWriter.WriteLine("JOIN " & ircChannel)
ircWriter.Flush()
Loop
IrcWriter.Close()
IrcReader.Close()
IrcConnection.Close()
Loop
End Sub ' Connect
Private Sub IrcPing(ByVal IrcCommand() As String)
Dim PingHash As String = ""
For intI As Integer = 1 To IrcCommand.Length - 1
PingHash &= IrcCommand(intI) & " "
Next intI
ircWriter.WriteLine("PONG " & PingHash)
ircWriter.Flush()
End Sub ' IrcPing
Sub joinchan(ByVal chan As String)
ircWriter.WriteLine("JOIN " & chan)
ircWriter.Flush()
MsgBox(chan)
End Sub
'QUOTE / PASS
Sub quotepass(ByVal pass As Integer)
ircWriter.WriteLine("QUOTE PASS " & pass)
ircWriter.Flush()
MsgBox("QUOTE PASS " & pass) 'this seems to be correct.
End Sub
End Module