VERSION 5.00
Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "RICHTX32.OCX"
Begin VB.Form Form1
Caption = "BWW-IRC"
ClientHeight = 6165
ClientLeft = 60
ClientTop = 345
ClientWidth = 8280
LinkTopic = "Form1"
ScaleHeight = 6165
ScaleWidth = 8280
StartUpPosition = 3 'Windows Default
Begin VB.ListBox lstNames
Height = 2010
Left = 6360
TabIndex = 15
Top = 3120
Width = 1815
End
Begin VB.TextBox txtRealline
Height = 1095
Left = 120
MultiLine = -1 'True
ScrollBars = 3 'Both
TabIndex = 14
Top = 4920
Width = 6135
End
Begin VB.TextBox txtPass
Height = 285
IMEMode = 3 'DISABLE
Left = 6360
PasswordChar = "*"
TabIndex = 12
Top = 2160
Width = 1815
End
Begin VB.TextBox txtUser
Height = 285
Left = 6360
TabIndex = 9
Text = "Username"
Top = 1560
Width = 1815
End
Begin VB.TextBox txtNick
Height = 285
Left = 6360
TabIndex = 8
Text = "Bwww"
Top = 960
Width = 1815
End
Begin VB.ComboBox cboServer
Height = 315
Left = 6360
TabIndex = 7
Text = "sterling.openprojects.net"
Top = 360
Width = 1815
End
Begin VB.ComboBox cboMode
Height = 315
ItemData = "Form1.frx":0000
Left = 2640
List = "Form1.frx":0002
TabIndex = 6
Text = "Select Mode"
Top = 4560
Width = 1575
End
Begin VB.TextBox Text3
Height = 285
Left = 5640
TabIndex = 4
Text = "Text3"
Top = -360
Width = 1935
End
Begin RichTextLib.RichTextBox rtbView
Height = 4335
Left = 120
TabIndex = 3
Top = 120
Width = 6135
_ExtentX = 10821
_ExtentY = 7646
_Version = 393217
ScrollBars = 3
TextRTF = $"Form1.frx":0004
End
Begin VB.CommandButton cmdSend
Caption = "Send"
Height = 375
Left = 4320
TabIndex = 2
Top = 4560
Width = 1215
End
Begin MSWinsockLib.Winsock Winsock1
Left = 6000
Top = 4560
_ExtentX = 741
_ExtentY = 741
_Version = 393216
End
Begin VB.TextBox txtMessage
Height = 285
Left = 120
TabIndex = 1
Top = 4560
Width = 2415
End
Begin VB.CommandButton cmdConnect
Caption = "Connect"
Height = 375
Left = 6360
TabIndex = 0
Tag = "1"
Top = 2640
Width = 1815
End
Begin VB.Label Label4
Caption = "Password"
Height = 255
Left = 6360
TabIndex = 13
Top = 1920
Width = 1455
End
Begin VB.Label Label3
Caption = "Username"
Height = 255
Left = 6360
TabIndex = 11
Top = 1320
Width = 1335
End
Begin VB.Label Label2
Caption = "Nick Name"
Height = 495
Left = 6360
TabIndex = 10
Top = 720
Width = 1095
End
Begin VB.Label Label1
Caption = "Server:"
Height = 495
Left = 6360
TabIndex = 5
Top = 120
Width = 1215
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim WithEvents IRC As SIRCParser
Attribute IRC.VB_VarHelpID = -1
Dim JoinChannel, CurChannel, Nick, User As String
Private Sub Form_Load()
'load blocked words
getWords
'Randomize (123)
Set IRC = New SIRCParser
With cboServer
.AddItem "sterling.openprojects.net"
.AddItem "california.us.ablenet.org"
End With
With cboMode
.AddItem "Channel Msg"
.AddItem "Private Msg"
.AddItem "Join"
.AddItem "Command"
End With
End Sub
'CONNECT COMMAND
Private Sub cmdConnect_Click()
Connect
End Sub
'SEND MESSAGES
Private Sub cmdSend_Click()
Debug.Print cboMode.text
If cboMode.text = "Select Mode" Then MsgBox "No mode selected"
If cboMode.text = "Channel Msg" Then
SendData "PRIVMSG #" + CurChannel + " :" + txtMessage.text
Display "<" + Nick + ">" + txtMessage.text, vbBlack
End If
If cboMode.text = "Command" Then SendData txtMessage.text
End Sub
'RECIEVED MESSAGE
Private Sub irc_OnChannelMsg(SenderNick As String, SenderHost As String, RecvChannel As String, Message As String, RealLine As String)
Message = RemoveWords(Message)
If InStr(1, Message, "ACTION") Then
msg = "<" + SenderNick + ">: " + Mid(Message, 9, (Len(Message) - 3))
Display msg, &HC000C0
Else
msg = "<" + SenderNick + ">: " + Message
Display msg, vbBlack
End If
End Sub
'USER NAMES
Private Sub IRC_OnChannelNames(Server As String, nickname As String, Channel As String, People As String, RealLine As String)
On Error GoTo errors
i = 0
temp = Split(People, " ")
Do While True
lstNames.AddItem temp(i)
i = i + 1
Loop
Exit Sub
errors:
End Sub
'ON CONNECT TO A CHANNEL
Private Sub irc_OnChannelTopic(Server As String, Channel As String, Topic As String, RealLine As String)
Display Channel, &H8000&
End Sub
'ON THE END OF MOTD
Private Sub irc_OnServerEOFMOTD(Server As String, nickname As String, Message As String, RealLine As String)
JoinChannel = Trim(InputBox("Enter Channel #", "Choose Channel", "PHP"))
CurChannel = JoinChannel
'join channel if set
If JoinChannel <> "none" Then SendData "JOIN #" + JoinChannel
End Sub
'ON PING 2 REPLY PONG
Private Sub irc_OnServerPing(PingID As String, RealLine As String)
SendData "PONG " + PingID
End Sub
'ON SERVER WELCOME
Private Sub irc_OnServerWelcome(Server As String, nickname As String, Message As String, RealLine As String)
Display Message, vbBlue
End Sub
'IRC UNKNOW SERVER MESSAGE
Private Sub irc_UnknownIncome(Line As String)
Display Line, vbBlue
End Sub
Private Sub lstNames_DblClick()
MsgBox lstNames.List(lstNames.ListIndex)
End Sub
Private Sub Winsock1_Connect()
Nick = Trim(txtNick.text)
User = Trim(txtUser.text)
SendData "USER " + User + " " + User + " " + User + " :" + User
SendData "NICK " + Nick
End Sub
'DATA ARRIVAL
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim data As String
Winsock1.GetData data
Debug.Print data
txtRealline.text = txtRealline.text + data
txtRealline.SelStart = Len(txtRealline.text) - 1
IRC.ProcessText (data)
'on auth - authenticate
If InStr(1, data, "NOTICE AUTH :*** No", vbTextCompare) > 0 Then
Debug.Print "done"
Winsock1.SendData vbCrLf
Winsock1.SendData "NICK " + "bww"
Winsock1.SendData vbCrLf
End If
End Sub
'DISPLAY TEXT SUB
Public Sub Display(ByVal s As String, Optional Color As Long = vbBlue)
'Add text to the text output window.
Debug.Print "text"
With rtbView
'Clear all but the last 2000 characters
' if it's too large
'(don't cut it off in the middle of a li
' ne tho).
If Len(.text) + Len(s) > 15000 Then
.SelStart = 0
.SelLength = InStrRev(.text, vbCrLf, Len(.text) - 2000, vbTextCompare) + 1
.SelText = ""
End If
.SelStart = Len(.text)
.SelColor = Color
.SelText = s & vbCrLf
.SelStart = Len(.text)
End With
End Sub
'SEND DATA SUB
Public Sub SendData(text As String)
Winsock1.SendData text
Winsock1.SendData vbCrLf
End Sub
Public Sub Quit()
SendData "QUIT"
End Sub
Public Sub Connect()
'if not connected
If cmdConnect.Tag = 1 Then
Display "Connecting...", vbBlue
Winsock1.Connect cboServer.text, 6667 'cboServer.ItemData(cboServer.ListIndex), 6667
cmdConnect.Tag = 2
cmdConnect.Caption = "Disconnect"
Exit Sub
End If
'if conneted
If cmdConnect.Tag = 2 Then
Quit
Winsock1.Close
Display "Disconnected by user", vbRed
cmdConnect.Caption = "Connect"
cmdConnect.Tag = 1
Exit Sub
End If
End Sub