02.08.2005, 13:09 Uhr
hab da nen problem.das script ist ganz nice, aber es bannt namen nicht die geaddet wurden.
kann bitte jemand mal schaun?
hier das script
kann bitte jemand mal schaun?
Code:
osten|wolfi10] !addnameban q2764
GreenDay - Der Real Name "q2764" wurde der Blacklist hinzugefügt
LindT - Der Real Name "q2764" wurde der Blacklist hinzugefügt
join: (q2764) (03~g7505@p54B83246.dip0.t-ipconnect.de03)hier das script
Code:
'================================================
'Erstellt mit [ABP]AVS 1.0.8
'AnGelBot Visual Scripting
'Visit us online @ http://www.AnGelBot-Portal.de/
'================================================
'Programmiert von Sp33d
'================================================
'In welchen Channeln soll das Script aktiv sein?
'(mit Leerzeichen trennen)
Const ActiveChannels = "#osten #wolfi #bengie"
'Zeit nach der durch das Script gebannte User entbannt
'werden (in Sekunden; 0 für nie)
Const UnBanTime = 1800
'User alle Rechte von L/Q für den Channel nehmen
'(außer +mn; der Bot muss mindestens +m haben damit
'diese Einstellung Wirkung zeigt)
Const Remove_L_Rights = True
Const Remove_Q_Rights = True
'Erweiterte Debugmeldungen im Channel/Partyline
Const DebugIt = False
Const stAuthBans = "pdw_auth.ini"
Const stHostBans = "pdw_host.ini"
Const stNameBans = "pdw_name.ini"
Const stChanBans = "pdw_chan.ini"
Const WS_Nick = 0
Const WS_Chan = 1
Const WS_Ident = 2
Const WS_Host = 3
Const WS_RealName = 4
Const WS_Channels = 5
Const WS_Busy = 6
Const WS_Auth = 7
Dim WhoisScans(100, 7)
Sub Init()
Script "Pakt der Wölfe 1.0c by Sp33d (no OBL Support)"
Hook "Chan_Msg"
Hook "Join"
Hook "Commands"
Hook "Numerics"
AddCommand "listauthbans", CL_Mas, "+m", "2*** LISTAUTHBANS## 14Listet alle Auths meiner Blacklist auf."
AddCommand "listhostbans", CL_Mas, "+m", "2*** LISTHOSTBANS## 14Listed alle Hostmasks meiner Blacklist auf."
AddCommand "listnamebans", CL_Mas, "+m", "2*** LISTNAMEBANS## 14Listet alle Real Names meiner Blacklist auf."
AddCommand "listchanbans", CL_Mas, "+m", "2*** LISTCHANBANS## 14Listet alle Channels meiner Blacklist auf."
AddCommand "addauthban", CL_Mas, "+m", "2*** ADDAUTHBAN <auth>## 14Fügt einen Q-Account meiner Blackliste hinzu."
AddCommand "addhostban", CL_Mas, "+m", "2*** ADDHOSTBAN <host>## 14Fügt eine Hostmask meiner Blackliste hinzu."
AddCommand "addnameban", CL_Mas, "+m", "2*** ADDNAMEBAN <name>## 14Fügt einen Real Name meiner Blackliste hinzu."
AddCommand "addchanban", CL_Mas, "+m", "2*** ADDCHANBAN <#channel>## 14Fügt einen Channel meiner Blackliste hinzu."
AddCommand "delauthban", CL_Mas, "+m", "2*** DelAUTHBAN <auth>## 14Entfernt einen Q-Account von meiner Blackliste."
AddCommand "delhostban", CL_Mas, "+m", "2*** DelHOSTBAN <host>## 14Entfernt eine Hostmask von meiner Blackliste."
AddCommand "delnameban", CL_Mas, "+m", "2*** DelNAMEBAN <name>## 14Entfernt einen Real Name von meiner Blackliste."
AddCommand "delchanban", CL_Mas, "+m", "2*** DelCHANBAN <#channel>## 14Entfernt einen Channel von meiner Blackliste."
End Sub
Sub Chan_Msg(Chan, Nick, RegUser, Line)
If MatchFlags(GetUserFlags(RegUser), "+m") Then
Dim TBans, i, Dummy
Select Case LCase(Param(Line, 1))
'|------------------------------|
'|.oO° Hinzufügen von Bans °Oo. |
'`------------------------------´
Case "!addauthban"
If Param(Line, 2) = vbNullString Then
SendLine "NOTICE " & Nick & " :Benutzung: !addauthban <auth> (blacklisted den Q Authnamen)", 2
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stAuthBans))
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stAuthBans)) = LCase(Param(Line, 2)) Then
SendLine "NOTICE " & Nick & " :Dieser Auth ist bereits blacklisted!", 2
Exit Sub
End If
Next
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stAuthBans) = vbNullString Then
WriteINIString i, "Mask", Param(Line, 2), stAuthBans
SendLine "NOTICE " & Nick & " :Der Auth """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt", 2
Exit Sub
End If
Next
WriteINIString "Main", "Bans", TBans + 1, stAuthBans
WriteINIString TBans + 1, "Mask", Param(Line, 2), stAuthBans
SendLine "NOTICE " & Nick & " :Der Auth """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt", 2
Case "!addhostban"
If Param(Line, 2) = vbNullString Then
SendLine "NOTICE " & Nick & " :Benutzung: !addhostban <hostmask> (blacklisted den Host)", 2
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stHostBans))
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stHostBans)) = LCase(Param(Line, 2)) Then
SendLine "NOTICE " & Nick & " :Dieser Host ist bereits blacklisted!", 2
Exit Sub
End If
Next
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stHostBans) = vbNullString Then
WriteINIString i, "Mask", Param(Line, 2), stHostBans
SendLine "NOTICE " & Nick & " :Der Host """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt", 2
Exit Sub
End If
Next
WriteINIString "Main", "Bans", TBans + 1, stHostBans
WriteINIString TBans + 1, "Mask", Param(Line, 2), stHostBans
SendLine "NOTICE " & Nick & " :Der Host """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt", 2
Case "!addnameban"
If Param(Line, 2) = vbNullString Then
SendLine "NOTICE " & Nick & " :Benutzung: !addnameban <name> (blacklisted den Real Name)", 2
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stNameBans))
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stNameBans)) = LCase(GetRest(Line, 2)) Then
SendLine "NOTICE " & Nick & " :Dieser Real Name ist bereits blacklisted!", 2
Exit Sub
End If
Next
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stNameBans) = vbNullString Then
WriteINIString i, "Mask", GetRest(Line, 2), stNameBans
SendLine "NOTICE " & Nick & " :Der Real Name """ & GetRest(Line, 2) & """ wurde der Blacklist hinzugefügt", 2
Exit Sub
End If
Next
WriteINIString "Main", "Bans", TBans + 1, stNameBans
WriteINIString TBans + 1, "Mask", GetRest(Line, 2), stNameBans
SendLine "NOTICE " & Nick & " :Der Real Name """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt", 2
Case "!addchanban"
If Param(Line, 2) = vbNullString Then
SendLine "NOTICE " & Nick & " :Benutzung: !addnameban <name> (blacklisted den Real Name)", 2
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stChanBans))
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stChanBans)) = LCase(Param(Line, 2)) Then
SendLine "NOTICE " & Nick & " :Dieser Channel ist bereits blacklisted!", 2
Exit Sub
End If
Next
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stChanBans) = vbNullString Then
WriteINIString i, "Mask", Param(Line, 2), stChanBans
SendLine "NOTICE " & Nick & " :Der Channel """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt", 2
Exit Sub
End If
Next
WriteINIString "Main", "Bans", TBans + 1, stChanBans
WriteINIString TBans + 1, "Mask", Param(Line, 2), stChanBans
SendLine "NOTICE " & Nick & " :Der Channel """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt", 2
'|------------------------------|
'| .oO° Entfernen von Bans °Oo. |
'`------------------------------´
Case "!delauthban"
If Param(Line, 2) = vbNullString Then
SendLine "NOTICE " & Nick & " :Benutzung: !delauthban <auth> (entfernt alle Bans, die auf den Auth zutreffen)", 2
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stAuthBans))
For i = 0 To TBans
If WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stAuthBans)), LCase(Param(Line, 2))) Then
Dummy = ReadINIString(i, "Mask", vbNullString, stAuthBans)
DeleteINISection CStr(i), stAuthBans
SendLine "NOTICE " & Nick & " :Der Ban auf den Auth """ & Dummy & """ mit der ID " & i & " wurde aufgehoben", 2
End If
Next
If Dummy = vbNullString Then SendLine "NOTICE " & Nick & " :Sorry, dieser Auth ist nicht über PdW gebanned", 2
Case "!delhostban"
If Param(Line, 2) = vbNullString Then
SendLine "NOTICE " & Nick & " :Benutzung: !delhostban <auth> (entfernt alle Bans, die auf die Hostmask zutreffen)", 2
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stHostBans))
For i = 0 To TBans
If WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stHostBans)), LCase(Param(Line, 2))) Then
Dummy = ReadINIString(i, "Mask", vbNullString, stHostBans)
DeleteINISection CStr(i), stHostBans
SendLine "NOTICE " & Nick & " :Der Ban auf die Hostmask """ & Dummy & """ mit der ID " & i & " wurde aufgehoben", 2
End If
Next
If Dummy = vbNullString Then SendLine "NOTICE " & Nick & " :Sorry, diese Host ist nicht über PdW gebanned", 2
Case "!delnameban"
If Param(Line, 2) = vbNullString Then
SendLine "NOTICE " & Nick & " :Benutzung: !delnameban <name> (entfernt alle Bans, die auf den Namen zutreffen)", 2
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stNameBans))
For i = 0 To TBans
If WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stNameBans)), LCase(Param(Line, 2))) Then
Dummy = ReadINIString(i, "Mask", vbNullString, stNameBans)
DeleteINISection CStr(i), stNameBans
SendLine "NOTICE " & Nick & " :Der Ban auf die Hostmask """ & Dummy & """ mit der ID " & i & " wurde aufgehoben", 2
End If
Next
If Dummy = vbNullString Then SendLine "NOTICE " & Nick & " :Sorry, dieser Name ist nicht über PdW gebanned", 2
Case "!delchanban"
If Param(Line, 2) = vbNullString Then
SendLine "NOTICE " & Nick & " :Benutzung: !delchanban <[" & ReadINIString("NET", "ChanPrefixes", "#", "net.conf") & "]channel> (entfernt einen Ban auf einen Channel)", 2
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stChanBans))
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stChanBans) <> vbNullString Then
If LCase(ReadINIString(i, "Mask", vbNullString, stChanBans)) = LCase(Param(Line, 2)) Then
DeleteINISection CStr(i), stChanBans
SendLine "NOTICE " & Nick & " :Der Ban auf den Channel """ & Param(Line, 2) & """ mit der ID " & i & " wurde aufgehoben", 2
Exit Sub
End If
End If
Next
SendLine "NOTICE " & Nick & " :Sorry, dieser Channel ist nicht über PdW gebanned", 2
End Select
End If
End Sub
Sub Join(Chan, Nick, RegUser, Flags)
If Not InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ") > 0 Then Exit Sub
If Nick = MyNick Then Exit Sub
If IsPrivileged(Chan, Nick, RegUser) Then Exit Sub
If IsOp(MyNick, Chan) Then
If DebugIt Then SendLine "PRIVMSG " & Chan & " :Starte Whois auf " & Nick & "...", 2
WhoisUser Nick, Chan
Else
SpreadFlagMessage 0, "+m", "3*** PdW: Bot ist nicht in " & Chan & " geopped und kann dort keine User bannen/kicken!"
End If
End Sub
Sub Commands(vSock, RegUser, Flags, Line)
Dim TBans, i, Dummy, Found
Select Case LCase(Param(Line, 1))
'|------------------------------|
'| .oO° Auflisten von Bans °Oo. |
'`------------------------------´
Case ".listauthbans"
TBans = CInt(ReadINIString("Main", "Bans", "0", stAuthBans))
Found = False
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stAuthBans)) <> vbNullString Then
If Not Found Then TU vSock, " ID | Auth": Found = True
TU vSock, " " & String(IIf(4 - Len(i) < 0, 0, 4 - Len(i)), " ") & i & " 14| " & ReadINIString(i, "Mask", vbNullString, stAuthBans)
End If
Next
If Not Found Then
TU vSock, "4*** Keine Auth in der Blacklist!"
End If
Case ".listhostbans"
TBans = CInt(ReadINIString("Main", "Bans", "0", stHostBans))
Found = False
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stHostBans)) <> vbNullString Then
If Not Found Then TU vSock, " ID | Hostmask": Found = True
TU vSock, " " & String(IIf(4 - Len(i) < 0, 0, 4 - Len(i)), " ") & i & " 14| " & ReadINIString(i, "Mask", vbNullString, stHostBans)
End If
Next
If Not Found Then
TU vSock, "4*** Keine Hostmask in der Blacklist!"
End If
Case ".listnamebans"
TBans = CInt(ReadINIString("Main", "Bans", "0", stNameBans))
Found = False
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stNameBans)) <> vbNullString Then
If Not Found Then TU vSock, " ID | Real Name": Found = True
TU vSock, " " & String(IIf(4 - Len(i) < 0, 0, 4 - Len(i)), " ") & i & " 14| " & ReadINIString(i, "Mask", vbNullString, stNameBans)
End If
Next
If Not Found Then
TU vSock, "4*** Keine Real Names in der Blacklist!"
End If
Case ".listchanbans"
TBans = CInt(ReadINIString("Main", "Bans", "0", stChanBans))
Found = False
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stChanBans)) <> vbNullString Then
If Not Found Then TU vSock, " ID | Channel": Found = True
TU vSock, " " & String(IIf(4 - Len(i) < 0, 0, 4 - Len(i)), " ") & i & " 14| " & ReadINIString(i, "Mask", vbNullString, stChanBans)
End If
Next
If Not Found Then
TU vSock, "4*** Keine Channel in der Blacklist!"
End If
'|------------------------------|
'|.oO° Hinzufügen von Bans °Oo. |
'`------------------------------´
Case ".addauthban"
If Param(Line, 2) = vbNullString Then
TU vSock, "4*** Benutzung: .addauthban <auth> (blacklisted den Q Authnamen)"
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stAuthBans))
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stAuthBans)) = LCase(Param(Line, 2)) Then
TU vSock, "4*** Dieser Auth ist bereits blacklisted!"
Exit Sub
End If
Next
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stAuthBans) = vbNullString Then
WriteINIString i, "Mask", Param(Line, 2), stAuthBans
TU vSock, "3*** Der Auth """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt"
Exit Sub
End If
Next
WriteINIString "Main", "Bans", TBans + 1, stAuthBans
WriteINIString TBans + 1, "Mask", Param(Line, 2), stAuthBans
TU vSock, "3*** Der Auth """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt"
Case ".addhostban"
If Param(Line, 2) = vbNullString Then
TU vSock, "4*** Benutzung: !addhostban <hostmask> (blacklisted den Host)"
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stHostBans))
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stHostBans)) = LCase(Param(Line, 2)) Then
TU vSock, "4*** Dieser Host ist bereits blacklisted!"
Exit Sub
End If
Next
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stHostBans) = vbNullString Then
WriteINIString i, "Mask", Param(Line, 2), stHostBans
TU vSock, "3*** Der Host """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt"
Exit Sub
End If
Next
WriteINIString "Main", "Bans", TBans + 1, stHostBans
WriteINIString TBans + 1, "Mask", Param(Line, 2), stHostBans
TU vSock, "3*** Der Host """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt"
Case ".addnameban"
If Param(Line, 2) = vbNullString Then
TU vSock, "4*** Benutzung: .addnameban <name> (blacklisted den Real Name)"
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stNameBans))
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stNameBans)) = LCase(GetRest(Line, 2)) Then
TU vSock, "4*** Dieser Real Name ist bereits blacklisted!"
Exit Sub
End If
Next
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stNameBans) = vbNullString Then
WriteINIString i, "Mask", GetRest(Line, 2), stNameBans
TU vSock, "3*** Der Real Name """ & GetRest(Line, 2) & """ wurde der Blacklist hinzugefügt"
Exit Sub
End If
Next
WriteINIString "Main", "Bans", TBans + 1, stNameBans
WriteINIString TBans + 1, "Mask", GetRest(Line, 2), stNameBans
TU vSock, "3*** Der Real Name """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt"
Case ".addchanban"
If Param(Line, 2) = vbNullString Then
TU vSock, "4*** Benutzung: .addnameban <name> (blacklisted den Real Name)"
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stChanBans))
For i = 0 To TBans
If LCase(ReadINIString(i, "Mask", vbNullString, stChanBans)) = LCase(Param(Line, 2)) Then
TU vSock, "4*** Dieser Channel ist bereits blacklisted!"
Exit Sub
End If
Next
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stChanBans) = vbNullString Then
WriteINIString i, "Mask", Param(Line, 2), stChanBans
TU vSock, "3*** Der Channel """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt"
Exit Sub
End If
Next
WriteINIString "Main", "Bans", TBans + 1, stChanBans
WriteINIString TBans + 1, "Mask", Param(Line, 2), stChanBans
TU vSock, "3*** Der Channel """ & Param(Line, 2) & """ wurde der Blacklist hinzugefügt"
'|------------------------------|
'| .oO° Entfernen von Bans °Oo. |
'`------------------------------´
Case ".delauthban"
If Param(Line, 2) = vbNullString Then
TU vSock, "4*** Benutzung: .delauthban <auth> (entfernt alle Bans, die auf den Auth zutreffen)"
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stAuthBans))
For i = 0 To TBans
If WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stAuthBans)), LCase(Param(Line, 2))) Then
Dummy = ReadINIString(i, "Mask", vbNullString, stAuthBans)
DeleteINISection CStr(i), stAuthBans
TU vSock, "3*** Der Ban auf den Auth """ & Dummy & """ mit der ID " & i & " wurde aufgehoben"
End If
Next
If Dummy = vbNullString Then TU vSock, "4*** Sorry, dieser Auth ist nicht über PdW gebanned"
Case "!delhostban"
If Param(Line, 2) = vbNullString Then
TU vSock, "4*** Benutzung: .delhostban <auth> (entfernt alle Bans, die auf die Hostmask zutreffen)"
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stHostBans))
For i = 0 To TBans
If WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stHostBans)), LCase(Param(Line, 2))) Then
Dummy = ReadINIString(i, "Mask", vbNullString, stHostBans)
DeleteINISection CStr(i), stHostBans
TU vSock, "3*** Der Ban auf die Hostmask """ & Dummy & """ mit der ID " & i & " wurde aufgehoben"
End If
Next
If Dummy = vbNullString Then TU vSock, "4*** Sorry, diese Host ist nicht über PdW gebanned"
Case ".delnameban"
If Param(Line, 2) = vbNullString Then
TU vSock, "4*** Benutzung: .delnameban <name> (entfernt alle Bans, die auf den Namen zutreffen)"
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stNameBans))
For i = 0 To TBans
If WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stNameBans)), LCase(Param(Line, 2))) Then
Dummy = ReadINIString(i, "Mask", vbNullString, stNameBans)
DeleteINISection CStr(i), stNameBans
TU vSock, "3*** Der Ban auf die Hostmask """ & Dummy & """ mit der ID " & i & " wurde aufgehoben"
End If
Next
If Dummy = vbNullString Then TU vSock, "4*** Sorry, dieser Name ist nicht über PdW gebanned"
Case ".delchanban"
If Param(Line, 2) = vbNullString Then
TU vSock, "4*** Benutzung: .delchanban <[" & ReadINIString("NET", "ChanPrefixes", "#", "net.conf") & "]channel> (entfernt einen Ban auf einen Channel)"
Exit Sub
End If
TBans = CInt(ReadINIString("Main", "Bans", "0", stChanBans))
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stChanBans) <> vbNullString Then
If LCase(ReadINIString(i, "Mask", vbNullString, stChanBans)) = LCase(Param(Line, 2)) Then
DeleteINISection CStr(i), stChanBans
TU vSock, "3*** Der Ban auf den Channel """ & Param(Line, 2) & """ mit der ID " & i & " wurde aufgehoben"
Exit Sub
End If
End If
Next
TU vSock, "4*** Sorry, dieser Channel ist nicht über PdW gebanned"
End Select
End Sub
Sub WhoIsUser(Nick, Chan)
Dim i
For i = LBound(WhoisScans) To UBound(WhoisScans)
If WhoisScans(i, WS_Busy) = False Then
ResetScan i
WhoisScans(i, WS_Busy) = True
WhoisScans(i, WS_Nick) = Nick
WhoisScans(i, WS_Chan) = Chan
If DebugIt Then SendLine "PRIVMSG " & Chan & " :Scan ID: " & i, 2
SendLine "WHOIS " & Nick, 1
Exit Sub
End If
Next
If DebugIt Then SendLine "PRIVMSG " & Chan & " :Scanner überlastet. Scan abgebrochen.", 2
End Sub
Sub Numerics(Line)
Dim i
'<- 311 Sp33d das03 dong pD9018484.dip.t-dialin.net * :dong
'<- 307 Sp33d das03 :is a registered nick
'<- 319 Sp33d das03 :#angelbot-portal %#GeekZone
'<- 312 Sp33d das03 eris.zapto.org :GeekZone Main-Server
'<- 320 Sp33d das03 :ist der /Whoiser auf GeekZone
'<- 317 Sp33d das03 83 1065469680 :seconds idle, signon time
'<- 318 Sp33d das03 :End of /WHOIS list.
If Left(Param(Line, 1), 1) <> "3" Then Exit Sub
For i = LBound(WhoisScans) To UBound(WhoisScans)
If WhoisScans(i, WS_Nick) = Param(Line, 3) Then
If Param(Line, 1) = "311" Then
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(i, WS_Chan) & " :Empfange Numeric 311...", 2
WhoisScans(i, WS_Ident) = Param(Line, 4)
WhoisScans(i, WS_Host) = Param(Line, 5)
' WhoisScans(i, WS_RealName) = Replace(Replace(Mid(GetRest(Line, 7), 2), "*", vbNullString), "?", vbNullString)
WhoisScans(i, WS_RealName) = Replace(Mid(GetRest(Line, 7), 2), "#", vbNullString)
ElseIf Param(Line, 1) = "319" Then
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(i, WS_Chan) & " :Empfange Numeric 319...", 2
WhoisScans(i, WS_Channels) = Mid(GetRest(Line, 4), 2)
ElseIf Param(Line, 1) = "330" Then
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(i, WS_Chan) & " :Empfange Numeric 330...", 2
WhoisScans(i, WS_Auth) = Param(Line, 4)
ElseIf Param(Line, 1) = "318" Then
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(i, WS_Chan) & " :Empfange Numeric 318. Starte Bancheck...", 2
CheckUser i
End If
End If
Next
End Sub
Sub CheckUser(ID)
Dim HMask, Banned, BChan
HMask = WhoisScans(ID, WS_Nick) & "!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host)
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(ID, WS_Chan) & " :Daten über " & WhoisScans(ID, WS_Nick) & ":", 2
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(ID, WS_Chan) & " :Real Name: " & WhoisScans(ID, WS_RealName), 2
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(ID, WS_Chan) & " :Auth: " & WhoisScans(ID, WS_Auth), 2
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(ID, WS_Chan) & " :Hostmask: " & HMask, 2
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(ID, WS_Chan) & " :Channels: " & WhoisScans(ID, WS_Channels), 2
Banned = False
If AuthIsBanned(WhoisScans(ID, WS_Auth)) Then
SendLine "MODE " & WhoisScans(ID, WS_Chan) & " -ov+bb " & WhoisScans(ID, WS_Nick) & " " & WhoisScans(ID, WS_Nick) & " *!*@" & WhoisScans(ID, WS_Auth) & ".users.quakenet.org *!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host) & vbCrLf & _
"KICK " & WhoisScans(ID, WS_Chan) & " " & WhoisScans(ID, WS_Nick) & " :Blacklisted by PdW 1.0a :: ID " & Param(ReadINIString("Kick", "counter", vbNullString, "Counter.ini"), 1), 1
SpreadFlagMessage 0, "+m", "14*** Kickbanned " & WhoisScans(ID, WS_Nick) & " off " & WhoisScans(ID, WS_Chan) & " (Auth blacklisted: " & WhoisScans(ID, WS_Auth) & ")"
If UnBanTime > 0 Then
TimedCommand "UnBan """ & WhoisScans(ID, WS_Chan) & """, ""*!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host) & """", UnBanTime
TimedCommand "UnBan """ & WhoisScans(ID, WS_Chan) & """, ""*!*@" & WhoisScans(ID, WS_Auth) & ".users.quakenet.org""", UnBanTime
End If
Banned = True
ElseIf HostIsBanned(HMask) Then
SendLine "MODE " & WhoisScans(ID, WS_Chan) & " -ov+b " & WhoisScans(ID, WS_Nick) & " " & WhoisScans(ID, WS_Nick) & " *!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host) & vbCrLf & _
"KICK " & WhoisScans(ID, WS_Chan) & " " & WhoisScans(ID, WS_Nick) & " :Blacklisted by PdW 1.0a :: ID " & Param(ReadINIString("Kick", "counter", vbNullString, "Counter.ini"), 1), 1
SpreadFlagMessage 0, "+m", "14*** Kickbanned " & WhoisScans(ID, WS_Nick) & " off " & WhoisScans(ID, WS_Chan) & " (Host blacklisted: " & WhoisScans(ID, WS_Nick) & "!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host) & ")"
If UnBanTime > 0 Then TimedCommand "UnBan """ & WhoisScans(ID, WS_Chan) & """, ""*!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host) & """", UnBanTime
Banned = True
ElseIf NameIsBanned(WhoisScans(ID, WS_RealName)) Then
SendLine "MODE " & WhoisScans(ID, WS_Chan) & " -ov+b " & WhoisScans(ID, WS_Nick) & " " & WhoisScans(ID, WS_Nick) & " *!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host) & vbCrLf & _
"KICK " & WhoisScans(ID, WS_Chan) & " " & WhoisScans(ID, WS_Nick) & " :Blacklisted by PdW 1.0a :: ID " & Param(ReadINIString("Kick", "counter", vbNullString, "Counter.ini"), 1), 1
SpreadFlagMessage 0, "+m", "14*** Kickbanned " & WhoisScans(ID, WS_Nick) & " off " & WhoisScans(ID, WS_Chan) & " (Real name blacklisted: """ & WhoisScans(ID, WS_RealName) & """)"
If UnBanTime > 0 Then TimedCommand "UnBan """ & WhoisScans(ID, WS_Chan) & """, ""*!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host) & """", UnBanTime
Banned = True
End If
BChan = IsOnBannedChannels(WhoisScans(ID, WS_Channels))
If BChan <> vbNullString And Banned = False Then
SendLine "MODE " & WhoisScans(ID, WS_Chan) & " -ov+b " & WhoisScans(ID, WS_Nick) & " " & WhoisScans(ID, WS_Nick) & " *!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host) & vbCrLf & _
"KICK " & WhoisScans(ID, WS_Chan) & " " & WhoisScans(ID, WS_Nick) & " :Channel blacklisted: " & BChan & " by PdW 1.0a :: ID " & Param(ReadINIString("Kick", "counter", vbNullString, "Counter.ini"), 1), 1
If UnBanTime > 0 Then TimedCommand "UnBan """ & WhoisScans(ID, WS_Chan) & """, ""*!" & WhoisScans(ID, WS_Ident) & "@" & WhoisScans(ID, WS_Host) & """", UnBanTime
Banned = True
End If
If Banned Then
If IsOn("L", WhoisScans(ID, WS_Chan)) And Remove_L_Rights = True Then
SendLine "PRIVMSG L :CHANLEV " & WhoisScans(ID, WS_Chan) & " " & WhoisScans(ID, WS_Nick) & " -aovg", 1
ElseIf IsOn("Q", WhoisScans(ID, WS_Chan)) And Remove_Q_Rights = True Then
SendLine "PRIVMSG Q :CHANLEV " & WhoisScans(ID, WS_Chan) & " " & WhoisScans(ID, WS_Nick) & " -aotv", 1
End If
Else
If DebugIt Then SendLine "PRIVMSG " & WhoisScans(ID, WS_Chan) & " :" & WhoisScans(ID, WS_Nick) & " ist sauber :>", 2
End If
ResetScan ID
End Sub
Sub Nick(Chan, OldNick, NewNick, RegUser, Flags, Count)
If Not InStr(1, " " & LCase(ActiveChannels) & " ", " " & LCase(Chan) & " ") > 0 Then Exit Sub
Dim i
For i = LBound(WhoisScans) To UBound(WhoisScans)
If WhoisScans(i, WS_Nick) = OldNick And WhoisScans(i, WS_Busy) = True Then
WhoisScans(i, WS_Nick) = NewNick
End If
Next
End Sub
Function AuthIsBanned(Auth)
Dim i, TBans
TBans = CInt(ReadINIString("Main", "Bans", "0", stAuthBans))
AuthIsBanned = False
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stAuthBans) <> vbNullString Then
'SpreadFlagMessage 0, "+m", Auth & " matches " & ReadINIString(i, "Mask", vbNullString, stAuthBans) & ": " & WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stAuthBans)), LCase(Auth))
If WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stAuthBans)), LCase(Auth)) Then
AuthIsBanned = True
Exit Function
End If
End If
Next
End Function
Function HostIsBanned(HMask)
Dim i, TBans
TBans = CInt(ReadINIString("Main", "Bans", "0", stHostBans))
HostIsBanned = False
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stHostBans) <> vbNullString Then
'SpreadFlagMessage 0, "+m", HMask & " matches " & ReadINIString(i, "Mask", vbNullString, stHostBans) & ": " & WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stHostBans)), LCase(HMask))
If WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stHostBans)), LCase(HMask)) Then
HostIsBanned = True
Exit Function
End If
End If
Next
End Function
Function NameIsBanned(RName)
Dim i, TBans
TBans = CInt(ReadINIString("Main", "Bans", "0", stNameBans))
NameIsBanned = False
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stNameBans) <> vbNullString Then
'SpreadFlagMessage 0, "+m", RName & " matches " & ReadINIString(i, "Mask", vbNullString, stNameBans) & ": " & WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stNameBans)), LCase(RName))
If WildMatch(LCase(ReadINIString(i, "Mask", vbNullString, stNameBans)), LCase(RName)) Then
NameIsBanned = True
Exit Function
End If
End If
Next
End Function
Function IsOnBannedChannels(Channels)
Dim Chans, i
IsOnBannedChannels = vbNullString
Chans = Split(Channels, " ")
For i = LBound(Chans) To UBound(Chans)
If Trim(Chans(i)) <> vbNullString Then
If Left(Chans(i), 1) <> "#" Then Chans(i) = Mid(Chans(i), InStr(1, Chans(i), "#"))
If ChannelIsBanned(Chans(i)) Then
IsOnBannedChannels = Chans(i)
Exit Function
End If
End If
Next
End Function
Function ChannelIsBanned(Chan)
Dim i, TBans
TBans = CInt(ReadINIString("Main", "Bans", "0", stChanBans))
ChannelIsBanned = False
For i = 0 To TBans
If ReadINIString(i, "Mask", vbNullString, stChanBans) <> vbNullString Then
If LCase(ReadINIString(i, "Mask", vbNullString, stChanBans)) = LCase(Chan) Then
ChannelIsBanned = True
Exit Function
End If
End If
Next
End Function
Sub ResetScan(ID)
WhoisScans(ID, WS_Nick) = vbNullString
WhoisScans(ID, WS_Chan) = vbNullString
WhoisScans(ID, WS_RealName) = vbNullString
WhoisScans(ID, WS_Ident) = vbNullString
WhoisScans(ID, WS_Host) = vbNullString
WhoisScans(ID, WS_Channels) = vbNullString
WhoisScans(ID, WS_Auth) = vbNullString
WhoisScans(ID, WS_Busy) = False
End Sub
Function IsPrivileged(Chan, Nick, RegUser)
IsPrivileged = False
If RegUser = vbNullString Then
If Len(Nick) = 1 Or InStr(1, Nick, ".") > 0 Or Nick = vbNullString Then
'Service
IsPrivileged = True
End If
ElseIf Nick = MyNick Then
IsPrivileged = True
ElseIf MatchFlags(GetUserChanFlags(Chan, RegUser), "+s") Or _
MatchFlags(GetUserChanFlags(Chan, RegUser), "+n") Or _
MatchFlags(GetUserChanFlags(Chan, RegUser), "+m") Then
IsPrivileged = True
ElseIf MatchFlags(GetUserFlags(RegUser), "+s") Or _
MatchFlags(GetUserFlags(RegUser), "+n") Or _
MatchFlags(GetUserFlags(RegUser), "+m") Or _
MatchFlags(GetUserFlags(RegUser), "+b") Then
IsPrivileged = True
End If
End Function
Sub UnBan(Chan, HMask)
If IsOp(MyNick, Chan) Then
SendLine "MODE " & Chan & " -b " & HMask, 2
End If
End Sub