VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsChannel"
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 = "Top_Level" ,"Yes"
Option Explicit
Option Base 1
Public Name As String
Public Topic As String
Public Modes As New Collection
Public TopicSetOn As Long
Public TopicSetBy As String
Public Index As Long
Public Password As String
Public UserLevels As New Collection
Public Invited As New Collection
Public Key As String
Public Limit As Integer
Public All As New Collection
Public Ops As New Collection
Public Voices As New Collection
Public NormUsers As New Collection
Public Bans As New Collection
Public Exceptions As New Collection
Public Invites As New Collection
Public Property Get UserCount() As Long
UserCount = NormUsers.Count + Ops.Count + Voices.Count
End Property
Public Property Get GetAll() As String
Dim i As Long
For i = 1 To All.Count
GetAll = GetAll & " " & All.Item(i)
Next i
GetAll = Trim(GetAll)
End Property
Public Property Get GetOps() As String
Dim i As Long
For i = 1 To Ops.Count
GetOps = GetOps & " @" & Ops.Item(i)
Next i
GetOps = Trim(GetOps)
If GetOps <> "" Then GetOps = GetOps & " "
End Property
Public Property Get GetVoices() As String
Dim i As Long
For i = 1 To Voices.Count
GetVoices = GetVoices & " +" & Voices.Item(i)
Next i
GetVoices = Trim(GetVoices)
If GetVoices <> "" Then GetVoices = GetVoices & " "
End Property
Public Property Get GetNorms() As String
Dim i As Long
For i = 1 To NormUsers.Count
GetNorms = GetNorms & " " & NormUsers.Item(i)
Next i
GetNorms = Trim(GetNorms)
End Property
Public Function IsOp(Nick As String) As Boolean
Dim i As Long
For i = 1 To Ops.Count
If Ops(i) = Nick Then
IsOp = True
Exit Function
End If
Next i
End Function
Public Function IsVoice(Nick As String) As Boolean
Dim i As Long
For i = 1 To Voices.Count
If Voices(i) = Nick Then
IsVoice = True
Exit Function
End If
Next i
End Function
Public Function IsNorm(Nick As String) As Boolean
Dim i As Long
For i = 1 To NormUsers.Count
If NormUsers(i) = Nick Then
IsNorm = True
Exit Function
End If
Next i
End Function
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 IsOnChan(NickName As String) As Boolean
Dim i As Long
For i = 1 To All.Count
If All(i) = NickName Then
IsOnChan = True
Exit Function
End If
Next i
End Function
Public Function IsBanned(User As clsUser) As Boolean
Dim i As Long
For i = 1 To Bans.Count
If (User.Nick & "!" & User.Ident & "@" & User.DNS) Like Bans(i) Then
IsBanned = True
Exit Function
End If
Next i
End Function
Public Function IsBanned2(ID As String) As Boolean
Dim i As Long
For i = 1 To Bans.Count
If (ID Like Bans(i)) Then
IsBanned2 = True
Exit Function
End If
Next i
End Function
Public Property Get GetModesForFile()
Dim i As Long
For i = 1 To Modes.Count
GetModesForFile = GetModesForFile + Modes(i)
Next i
End Property
Public Property Get GetModes() As String
Dim i As Long
For i = 1 To Modes.Count
GetModes = GetModes + Modes(i)
Next i
If Key <> "" And Limit <> 0 Then
GetModes = GetModes & "lk " & Limit & " " & Key
ElseIf Key <> "" And Limit = 0 Then
GetModes = GetModes & "k " & Key
ElseIf Key = "" And Limit <> 0 Then
GetModes = GetModes & "l " & Limit
End If
End Property
Public Sub AddToUserList(NickName As String, level As Long)
On Error Resume Next
UserLevels.Add NickName & " " & level, NickName
End Sub
Public Sub RemoveFromUserList(NickName As String)
UserLevels.Remove NickName
End Sub
Public Sub GetUserListItem(Index, ByRef NickName As String, ByRef level As Long)
NickName = UserLevels(Index)
level = CLng(Mid(NickName, InStr(1, NickName, " ")))
NickName = Replace(NickName, " " & level, "")
End Sub
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 ULOp(Nick As String) As Boolean
Dim User As clsUser, level As Long
Set User = NickToObject(Nick)
Dim i As Long
For i = 1 To UserLevels.Count
GetUserListItem i, Nick, level
If (Nick = User.Nick Or Nick = User.IdentifiedAs) And (level >= 100 And User.Identified) Then
ULOp = True
End If
Next i
End Function
Public Function ULVoice(Nick As String) As Boolean
Dim User As clsUser, level As Long
Set User = NickToObject(Nick)
Dim i As Long
For i = 1 To UserLevels.Count
GetUserListItem i, Nick, level
If (Nick = User.Nick Or Nick = User.IdentifiedAs) And (level = 50 And User.Identified) Then
ULVoice = True
End If
Next i
End Function
Public Function IsInvited(Nick As String) As Boolean
Dim i As Long
For i = 1 To Invited.Count
If Nick = Invited(i) Then
IsInvited = True
Invited.Remove i
Exit Function
End If
Next i
End Function
Public Function IsInvited2(User As clsUser) As Boolean
Dim i As Long
For i = 1 To Invites.Count
If (User.Nick & "!" & User.Ident & "@" & User.DNS) Like Invites(i) Then
IsInvited2 = True
Exit Function
End If
Next i
End Function
Public Function IsException(User As clsUser) As Boolean
Dim i As Long
For i = 1 To Exceptions.Count
If (User.Nick & "!" & User.Ident & "@" & User.DNS) Like Exceptions(i) Then
IsException = True
Exit Function
End If
Next i
End Function
Public Function IsException2(ID As String) As Boolean
Dim i As Long
For i = 1 To Exceptions.Count
If (ID Like Exceptions(i)) Then
IsException2 = True
Exit Function
End If
Next i
End Function
Public Function IsInvited3(ID As String) As Boolean
Dim i As Long
For i = 1 To Invites.Count
If (ID Like Invites(i)) Then
IsInvited3 = True
Exit Function
End If
Next i
End Function
Private Sub Class_Initialize()
ChanCount = ChanCount + 1
MaxChans = MaxChans + 1
End Sub
Private Sub Class_Terminate()
ChanCount = ChanCount - 1
End Sub