Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Private WithEvents Winsock1 As Winsock
- Private m_Server As String, _
- m_Port As String, _
- m_Nick As String, _
- m_AuthUser As String, _
- m_AuthPass As String
- Private Step As Integer
- Public Event Connected()
- Public Event DataArrived(Data As String)
- Public Event UserInRoom(User As String)
- Public Event UserLeftRoom(User As String)
- Public Event VersionInfo(User As String, Info As String)
- Public Event Message(User As String, Msg As String)
- Public Event ChannelMessage(Channel As String, Msg As String)
- Public Event NotSure(Msg As String)
- Public Property Get Server() As String
- Server = m_Server
- End Property
- Public Property Let Server(TheServer As String)
- m_Server = TheServer
- End Property
- Public Property Get Port() As String
- Port = m_Port
- End Property
- Public Property Let Port(ThePort As String)
- m_Port = ThePort
- End Property
- Public Property Get Nick() As String
- Nick = m_Nick
- End Property
- Public Property Let Nick(TheNick As String)
- m_Nick = TheNick
- End Property
- Public Property Get AuthUser() As String
- AuthUser = m_AuthUser
- End Property
- Public Property Let AuthUser(TheAuthUser As String)
- m_AuthUser = TheAuthUser
- End Property
- Public Property Get AuthPass() As String
- AuthPass = m_AuthPass
- End Property
- Public Property Let AuthPass(TheAuthPass As String)
- m_AuthPass = TheAuthPass
- End Property
- Public Sub Connect()
- Winsock1.Close
- Winsock1.Connect m_Server, m_Port
- End Sub
- Public Sub BindWinsock(SCK As Winsock)
- Set Winsock1 = SCK
- End Sub
- Private Sub Winsock1_Connect()
- RaiseEvent Connected
- Step = 0
- End Sub
- Public Sub Auth()
- SendData "AUTHSERV AUTH " & m_AuthUser & " " & m_AuthPass
- End Sub
- Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
- Dim Inc As String, Tmp() As String, i As Integer, d As String, x As Integer, t() As String
- Winsock1.GetData Inc
- RaiseEvent DataArrived(Inc)
- If Step = 0 Then
- SendData "NICK " & m_Nick
- SendData "USER " & m_Nick & " ""yahoo.com"" """ & m_Server & """ :chris"
- SendData "PROTOCTL NAMESX"
- Step = 1
- Exit Sub
- End If
- t() = Split(Inc, vbCrLf)
- For x = 0 To (UBound(t) - 1)
- Tmp() = Split(t(x), " ")
- Select Case Tmp(0)
- Case "PING"
- SendData "PONG :" & Mid(Tmp(1), 2)
- End Select
- If UBound(Tmp) = 0 Then Exit Sub
- Select Case Tmp(1)
- Case "353" 'names list
- For i = 6 To (UBound(Tmp) - 1)
- RaiseEvent UserInRoom(Tmp(i))
- Next
- Case "PART"
- d = Split(Tmp(0), "!")(0)
- RaiseEvent UserLeftRoom(Mid(d, 2))
- Case "JOIN"
- d = Split(Tmp(0), "!")(0)
- RaiseEvent UserInRoom(Mid(d, 2))
- Case "NOTICE"
- If Tmp(3) = ":" & Chr(1) & "VERSION" Then
- d = Split(Tmp(0), "!")(0)
- RaiseEvent VersionInfo(Mid(d, 2), Replace(AppendArray(Tmp(), 4, " "), Chr(1), ""))
- End If
- Case "PRIVMSG"
- d = Split(Tmp(0), "!")(0)
- If Tmp(3) = ":" & Chr(1) & "VERSION" & Chr(1) Then
- SendData "NOTICE " & Mid(d, 2) & " :" & Chr(1) & "VERSION PINEAPPLES ARE AWESOME" & Chr(1)
- End If
- Case Else
- RaiseEvent NotSure(t(x))
- End Select
- Next
- End Sub
- Private Function AppendArray(Ar As Variant, s As Integer, Delim As String)
- Dim i As Integer
- For i = s To UBound(Ar)
- AppendArray = AppendArray & Ar(i) & Delim
- Next
- AppendArray = Left(AppendArray, Len(AppendArray) - Len(Delim))
- End Function
- Private Sub SendData(Data As String)
- Winsock1.SendData Data & vbCrLf
- End Sub
- Public Sub JoinChannel(Channel As String)
- SendData "JOIN #" & Channel
- SendData "MODE #" & Channel
- End Sub
- Public Sub LeaveChannel(Channel As String)
- SendData "PART #" & Channel
- End Sub
- Public Sub SendChat(Channel As String, Txt As String)
- SendData "PRIVMSG #" & Channel & " :" & Txt
- End Sub
- Public Sub SendPM(User As String, Txt As String)
- SendData "PRIVMSG " & User & " :" & Txt
- End Sub
- Public Sub NS(cmd As String)
- SendData "NS " & cmd
- End Sub
- Public Sub Version(User As String)
- SendData "PRIVMSG " & User & " :" & Chr(1) & "VERSION" & Chr(1)
- End Sub
- Public Sub Notice(User As String, Msg As String)
- SendData "NOTICE " & User & " :" & Msg
- End Sub
- Public Sub Identify(pass As String)
- SendPM "nickserv", "identify " & pass
- End Sub
- Public Sub Kick(Channel As String, User As String)
- SendData "KICK #" & Channel & " " & User
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement