09.08.2003, 00:19 Uhr
Code:
'===============================
'Erstellt mit [ABP]AVS 1.0.5
'AnGelBot Visual Scripting
'Visit us online @ http://www.angelbot-portal.de/
'===============================
'Programmiert von Sp33d
'===============================
Const INIFile_Chan = "ini_AntiAdChan.ini"
Const INIFile_User = "ini_AntiAdUser.ini"
Const Version = "AntiAd Script 1.0c by Sp33d"
Sub Init()
Script Version
AddCommand "adsetup", Cl_Mas, "+m", "2*** .adsetup <#channel>## 14Zeigt das Setup zum angegebenen Channel an."
Hook "Chan_Msg"
Hook "Commands"
End Sub
Sub Commands(vSock, RegUser, Flags, Line)
If LCase(Param(Line, 1)) = ".adsetup" Then
If Param(Line, 2) <> "" Then
If Left(Param(Line, 2), 1) = "#" Then
GrabUser vSock, "Anti-Ad Setup", "AntiAd"
SetSockTag vSock, "~drawmenu~ " & Param(Line, 2)
AntiAd vSock, RegUser, Flags, ""
Else
TU vSock, "5*** Usage: .adsetup <[+#&]channel>"
End If
Else
TU vSock, "5*** Usage: .adsetup <[+#&]channel>"
End If
End If
End Sub
Sub AntiAd(vSock, RegUser, Flags, Line)
If Param(Line, 1) = "0" Then
If LCase(Param(GetSockTag(vSock), 1)) = "mainmenu" Then
TU vsock, "10*** Saving settings..."
ReleaseUser vSock
ElseIf InStr(1, LCase(GetSockTag(vSock)), "submenu") > 0 Then
SetSockTag vSock, "~drawmenu~"
AntiAd vSock, RegUser, Flags, ""
End If
Exit Sub
End If
Select Case LCase(Param(GetSockTag(vSock), 1))
Case "~drawmenu~"
TU vSock, " 11,0,%0,11%'12,11,%11,12%'2,12,%12,2%'1,2,%2,1%'1,1_______________2,1'%1,2%,12,2'%2,12%,11,12'%12,11%,0,11'%11,0%,"
TU vSock, "11,0,%0,11%'12,11,%11,12%'2,12,%12,2%'1,2,%2,1%'1,1_0,1 Anti-Ad Setup 1,1_2,1'%1,2%,12,2'%2,12%,11,12'%12,11%,0,11'%11,0%,"
TU vSock, " 11,0,%0,11%'12,11,%11,12%'2,12,%12,2%'1,2,%2,1%'1,1_______________2,1'%1,2%,12,2'%2,12%,11,12'%12,11%,0,11'%11,0%,"
TU vSock, " "
TU vSock, "Welcome to the setup of " & Version & "!"
TU vSock, "Current settings for " & Param(GetSockTag(vSock), 2) & ":"
TU vSock, " "
TU vSock, "2 1) Anti-Ad14...: " & IIf(LCase(ReadINIString(Param(GetSockTag(vSock), 2), "Status", "", INIFile_Chan)) = "on", "3ON", "4OFF")
TU vSock, "2 2) Kick ops14..: " & IIf(LCase(ReadINIString(Param(GetSockTag(vSock), 2), "KickOps", "", INIFile_Chan)) = "yes", "3YES", "4NO")
TU vSock, " "
TU vSock, "Enter a setting number or enter '0' to leave the setup."
TU vSock, "You can use shortcuts like '1 yes' or '2 no'."
SetSockTag vSock, "MainMenu " & Param(GetSockTag(vSock), 2)
Case "mainmenu"
Select Case Param(Line, 1)
Case 1, 2
If Left(Line, 1) = "." Then
TU vSock, "5*** You can't use bot commands in phpBackend-Setup!"
Exit Sub
End If
If Param(Line, 2) <> "" Then
Select Case LCase(Param(Line, 1))
Case 1
If LCase(Param(Line, 2)) = "on" Then
WriteINIString Param(GetSockTag(vSock), 2), "Status", "on", INIFile_Chan
SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 2)
AntiAd vSock, RegUser, Flags, ""
ElseIf LCase(Param(Line, 2)) = "off" Then
WriteINIString Param(GetSockTag(vSock), 2), "Status", "off", INIFile_Chan
SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 2)
AntiAd vSock, RegUser, Flags, ""
Else
TU vSock, "5*** Please enter 'on' or 'off' after the setting number."
Exit Sub
End If
Case 2
If LCase(Param(Line, 2)) = "yes" Then
WriteINIString Param(GetSockTag(vSock), 2), "KickOps", "yes", INIFile_Chan
SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 2)
AntiAd vSock, RegUser, Flags, ""
ElseIf LCase(Param(Line, 2)) = "no" Then
WriteINIString Param(GetSockTag(vSock), 2), "KickOps", "no", INIFile_Chan
SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 2)
AntiAd vSock, RegUser, Flags, ""
Else
TU vSock, "5*** Please enter 'yes' or 'no' after the setting number."
Exit Sub
End If
End Select
Else
SetSockTag vSock, "~drawsubmenu~ " & Param(GetSockTag(vSock), 2)
AntiAd vSock, RegUser, Flags, Param(Line, 1)
End If
Case Else
TU vSock, "5*** Please enter a valid number."
End Select
Case "~drawsubmenu~"
If Left(Line, 1) = "." Then
TU vSock, "5*** You can't use bot commands in phpBackend-Setup!"
Exit Sub
End If
Select Case Param(Line, 1)
Case 1
TU vSock, "21) 1Anti-Ad"
TU vSock, "14 Specifies wheter the Ad-Protection is"
TU vSock, "14 activated or not."
TU vSock, ""
TU vSock, "Choose wheter 'on' or 'off' to either activate or"
TU vSock, "deactivate it, type '0' to cancel setup."
SetSockTag vSock, "submenu 1 " & Param(GetSockTag(vSock), 2)
Case 2
TU vSock, "22) 1Kick-Ops"
TU vSock, "14 Specifies wheter Anti-Ad is allowed to harm"
TU vSock, "14 Ops as well."
TU vSock, ""
TU vSock, "Choose wheter 'yes' or 'no' to either activate or"
TU vSock, "deactivate it, type '0' to cancel setup."
SetSockTag vSock, "submenu 2 " & Param(GetSockTag(vSock), 2)
End Select
Case "submenu"
Select Case Param(GetSockTag(vSock), 2)
Case 1
If LCase(Param(Line, 1)) = "on" Then
WriteINIString Param(GetSockTag(vSock), 3), "Status", "on", INIFile_Chan
SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 3)
AntiAd vSock, RegUser, Flags, ""
ElseIf LCase(Param(Line, 1)) = "off" Then
WriteINIString Param(GetSockTag(vSock), 3), "Status", "off", INIFile_Chan
SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 3)
AntiAd vSock, RegUser, Flags, ""
Else
TU vSock, "5*** Please enter 'on', 'off' or '0'."
Exit Sub
End If
Case 2
If LCase(Param(Line, 1)) = "yes" Then
WriteINIString Param(GetSockTag(vSock), 3), "KickOps", "yes", INIFile_Chan
SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 3)
AntiAd vSock, RegUser, Flags, ""
ElseIf LCase(Param(Line, 1)) = "no" Then
WriteINIString Param(GetSockTag(vSock), 3), "KickOps", "no", INIFile_Chan
SetSockTag vSock, "~drawmenu~ " & Param(GetSockTag(vSock), 3)
AntiAd vSock, RegUser, Flags, ""
Else
TU vSock, "5*** Please enter 'yes', 'no' or '0'."
Exit Sub
End If
End Select
End Select
End Sub
Sub Chan_Msg(Chan, Nick, RegUser, Line)
If ReadINIString(Chan, "Status", "", INIFile_Chan) = "on" Then
If Instr(1, LCase(Line), "#") > 0 Or Instr(1, LCase(Line), "www.") > 0 Or Instr(1, LCase(Line), "http://") > 0 Then
If MatchFlags(GetUserChanFlags(RegUser, Chan), "+f") Or MatchFlags(GetUserChanFlags(RegUser, Chan), "+b") Then
SendLine "NOTICE " & Nick & " :No advertising on " & Chan & ", plz.", 1
Exit Sub
ElseIf IsOp(Nick, Chan) And ReadINIString(Chan, "KickOps", "yes", INIFile_Chan) = "no" then
SendLine "NOTICE " & Nick & " :No advertising on " & Chan & "! [next time: warning]", 1
Exit Sub
End If
Select Case ReadINIString(Nick, "Violations", "0", INIFile_User)
Case "0"
WriteINIString Nick, "Violations", "1", INIFile_User
SendLine "NOTICE " & Nick & " :No advertising on " & Chan & "! [next time: kick]", 1
Case "1"
WriteINIString Nick, "Violations", "2", INIFile_User
AddKick Chan, Nick, "No advertising on " & Chan & "! [next time: 1min temp-ban]"
Case "2"
WriteINIString Nick, "Violations", "3", INIFile_User
TimedCommand "DoUnban " & Chr(34) & Chan & Chr(34) & ", " & Chr(34) & Mask(Hostmask(Chan, Nick), 2) & Chr(34), 60
SendLine "MODE " & Chan & " -o+b " & Nick & " " & Mask(Hostmask(Chan, Nick), 2), 1
AddKick Chan, Nick, "No advertising on " & Chan & "! [next time: 5min temp-ban]"
Case "3"
WriteINIString Nick, "Violations", "0", INIFile_User
TimedCommand "DoUnban " & Chr(34) & Chan & Chr(34) & ", " & Chr(34) & Mask(Hostmask(Chan, Nick), 2) & Chr(34), 300
SendLine "MODE " & Chan & " -o+b " & Nick & " " & Mask(Hostmask(Chan, Nick), 2), 1
AddKick Chan, Nick, "No advertising on " & Chan & "! [next time: warning]"
End Select
End If
End If
End Sub
Sub DoUnBan(Chan, Mask)
SendLine "MODE " & Chan & " -b " & Mask, 1
End Subkann jemand das Script so erweitern, das man z.B. Channel und Urls vorgeben kann, bei denen nicht gekickt wird?