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