VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsUser"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Member0" ,"Memos"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit
Option Base 1
Public Name As String
Public Nick As String
Public ID As String
Public Email As String
Public Onchannels As New Collection
Public Idle As Long
Public Index As Long
Public NewUser As Boolean
Public Identified As Boolean
Public IRCOp As Boolean
Public Ident As String
Public SignOn As Long
Public DNS As String
Public NR As Boolean
Public OwnerOf As New Collection
Public SentQuit As Boolean
Public Modes As New Collection
Public Away As Boolean
Public AwayMsg As String
Public MsgsSent As Long
Public HasRegistered As Boolean
Public Killed As Boolean
Public IdentifiedAs As String
Public FloodProt As Integer
Public Server As String
Public ServerDescritption As String
Public LocalUser As Boolean
Public Hops As Integer
Public GID As String
Public Route As String
Public RealDNS As String
Public Ponged As Boolean
Public Function IsOnLink(SName As String) As Boolean
If InStr(1, Route, SName) <> 0 Then IsOnLink = True
End Function
Public Function GetOnChans() As String
Dim i As Long, Chan As clsChannel, NewChan As String
For i = 1 To Onchannels.Count
Set Chan = ChanToObject(Onchannels(i))
If Chan.IsOp(Nick) Then
NewChan = "@" & Onchannels(i)
ElseIf Chan.IsVoice(Nick) Then
NewChan = "+" & Onchannels(i)
Else
NewChan = Onchannels(i)
End If
GetOnChans = GetOnChans & " " & NewChan
Next i
GetOnChans = Trim(GetOnChans)
End Function
Public Function GetOnChans2() As String
Dim i As Long
For i = 1 To Onchannels.Count
GetOnChans2 = GetOnChans2 & " " & Onchannels(i)
Next i
GetOnChans2 = Trim(GetOnChans2)
End Function
Public Function GetWhois(NickName As String) As String
GetWhois = ":" & ServerName & " 311 " & NickName & " " & Nick & " " & Ident & " " & DNS & " * :" & Name & vbCrLf
GetWhois = GetWhois & ":" & ServerName & " 307 " & NickName & " " & Nick & " DNS " & DNS & vbCrLf
If Modes.Count <> 0 Then GetWhois = GetWhois & ":" & ServerName & " 309 " & NickName & " " & Nick & " :is using modes: +" & GetModes & vbCrLf
If Onchannels.Count <> 0 Then GetWhois = GetWhois & ":" & ServerName & " 319 " & NickName & " " & Nick & " :" & GetOnChans & vbCrLf
If Away Then GetWhois = GetWhois & ":" & ServerName & " 301 " & NickName & " " & Nick & " :" & AwayMsg & vbCrLf
GetWhois = GetWhois & ":" & ServerName & " 312 " & NickName & " " & Nick & " " & Server & " :" & ServerDescritption & vbCrLf
If (IRCOp Or IsMode("o")) Then
GetWhois = GetWhois & ":" & ServerName & " 313 " & NickName & " " & Nick & " :is an IRC Operator - Server Administrator" & vbCrLf
GetWhois = GetWhois & ":" & ServerName & " 310 " & NickName & " " & Nick & " :is a network helper" & vbCrLf
End If
If Not Idle = 0 Then GetWhois = GetWhois & ":" & ServerName & " 317 " & NickName & " " & Nick & " " & (UnixTime - Idle) & " " & SignOn & " :seconds idle, signon time" & vbCrLf
GetWhois = GetWhois & ":" & ServerName & " 318 " & NickName & " " & Nick & " :End of /WHOIS list." & vbCrLf
Debug.Print GetWhois
End Function
Public Function IsOwner(Channel As String) As Boolean
Dim i As Long
For i = 1 To OwnerOf.Count
If OwnerOf(i) = Channel Then
IsOwner = True
Exit Function
End If
Next i
End Function
Public Sub ClearOwnerShip()
Dim i As Long
For i = 1 To OwnerOf.Count
OwnerOf.Remove i
Next i
End Sub
Public Property Get GetModes() As String
Dim i As Long
For i = 1 To Modes.Count
GetModes = GetModes + Modes(i)
Next i
End Property
Public Sub AddModes(NewModes As String)
Dim i As Long
For i = 1 To Len(NewModes)
Modes.Add Mid(NewModes, i, 1), Mid(NewModes, i, 1)
Next i
End Sub
Public Function IsMode(Mode As String) As Boolean
Dim i As Long
For i = 1 To Modes.Count
If Modes(i) = Mode Then
IsMode = True
Exit Function
End If
Next i
End Function
Public Function GetChanModes(ChanName As String) As String
Dim CurChan As clsChannel
Set CurChan = ChanToObject(ChanName)
If Not CurChan.IsOnChan(Nick) Then Exit Function
If CurChan.IsVoice(Nick) Then GetChanModes = GetChanModes & "+"
If CurChan.IsOp(Nick) Then GetChanModes = GetChanModes & "@"
End Function
Public Function GetMask() As String
GetMask = Mid(DNS, 1, InStr(1, DNS, ".") - 1)
GetMask = Replace(DNS, GetMask, "*")
End Function
Public Function IsOnChan(Chan As String) As Boolean
Dim i As Long
For i = 1 To Onchannels.Count
If UCase(Onchannels(i)) = UCase(Chan) Then
IsOnChan = True
Exit Function
End If
Next i
End Function
Private Sub Class_Initialize()
UserCount = UserCount + 1
CurGlobalUsers = CurGlobalUsers + 1
If (CurGlobalUsers > MaxGlobalUsers) Then MaxGlobalUsers = MaxGlobalUsers + 1
End Sub
Private Sub Class_Terminate()
If IRCOp Then Operators = Operators - 1
If LocalUser Then UserCount = UserCount - 1
CurGlobalUsers = CurGlobalUsers - 1
End Sub