proc check:channel {chan applicant xuser} {
global settings check timerz
channel add $chan +secure
set timerz($chan,1) [utimer 6 [list puthelp "PRIVMSG $chan :Hello $applicant I am $::botnick from ${settings(suppchan)}. I am here to check $chan and see if I can give you an $settings(suppchan) bot"]]
set timerz($chan,2) [utimer 7 [list puthelp "PRIVMSG $chan :The procedure is goin to take over 2 minutes so please dont do anything untill than."]]
set timerz($chan,3) [utimer 8 [list puthelp "PRIVMSG $chan :Salut $applicant sunt $::botnick de la ${settings(suppchan)}. Sunt aici sa verific $chan si sa vad daca pot sati dau un bot $settings(suppchan)"]]
set timerz($chan,4) [utimer 9 [list puthelp "PRIVMSG $chan :Procedura va ocupa peste 2 minute asa ca te rog nu fa nimic."]]
set timerz($chan,5) [utimer 10 [list check:settings $chan $applicant]]
set timerz($chan,6) [utimer 20 [list check:bind]]
set timerz($chan,7) [utimer 30 [list putquick "PRIVMSG $chan :!usage"]]
set timerz($chan,8) [utimer 35 [list putquick "PRIVMSG $chan :!help"]]
set timerz($chan,9) [utimer 45 [list putquick "PRIVMSG $chan :!seen aqwzsx"]]
set timerz($chan,11) [utimer 70 [list putquick "PRIVMSG $chan :Channel Check Complited I am now going to send you another bot that is going to be your permanent bot. Please do what he says."]]
set timerz($chan,12) [utimer 75 [list channel remove $chan]]
set timerz($chan,13) [utimer 80 [list register $chan $applicant $xuser]]
}
proc check:timersoff {chan phase} {
global timerz
killutimer $timerz($chan,13)
killutimer $timerz($chan,12)
killutimer $timerz($chan,11)
if { $phase == "3" } { return }
killutimer $timerz($chan,9)
if { $phase == "2" } { return }
killutimer $timerz($chan,8)
if { $phase == "1" } { return }
killutimer $timerz($chan,7)
}
proc check:bind {} {
bind pubm -|- "% CORECT*USAGE*" check:purgeobot
bind pubm -|- "% *to*see*all*the*commands*" check:purgeobot:help
bind pubm -|- *remember*seeing* check:purgeobot:seen
bind pubm -|- *Nu*mi*amintesc* check:purgeobot:seen
bind pubm -|- *a*fost*vazut*ultima* check:purgeobot:seen
bind pubm -|- *was*last*seen* check:purgeobot:seen
bind mode -|- * check:purgemodeb
bind mode -|- * check:purgemodem
}
proc check:unbind {} {
unbind pubm -|- "% CORECT*USAGE*" check:purgeobot
unbind pubm -|- *remember*seeing* check:purgeobot:help
unbind pubm -|- *Nu*mi*amintesc* check:purgeobot:seen
unbind pubm -|- *a*fost*vazut*ultima* check:purgeobot:seen
unbind pubm -|- *was*last*seen* check:purgeobot:seen
unbind pubm -|- "% *to*see*all*the*commands*" check:purgeobot:seen
unbind mode -|- * check:purgemodeb
unbind mode -|- * check:purgemodem
}
################################
proc check:settings {chan x} {
global settings
set file "search.db"
set fdz [open $file r]
set conte [read $fdz]
close $fdz
if {[string match "*m*" [getchanmode $chan]]} {
putquick "part $chan :purged as moderate mode detected. For info/help apply on $settings(suppchan) & \037\00302$settings(homepage)"
channel remove $chan;
check:unbind
check:timersoff $chan 0
}
if {![onchan $x $chan]} {
putquick "part $chan :purged as the applicant $x is not on channel. For info/help apply on $settings(suppchan) &
\037\00302$settings(homepage)"
channel remove $chan;
check:unbind
check:timersoff $chan 0
}
if { [llength [chanlist $chan]] < 5 } {
putquick "part $chan :purged as you got [llength [chanlist $chan]] ppl which is less than 5 people requirement. For info/help apply on
$settings(suppchan) & \037\00302$settings(homepage)"
channel remove $chan;
check:unbind
check:timersoff $chan 0
}
if {[string match -nocase "*$chan*" $conte]} {
putquick "part $chan :purged as there is abuse record. For info/help apply on $settings(suppchan) & \037\00302$settings(homepage)"
channel remove $chan;
check:unbind
check:timersoff $chan 0
}
}
################################
proc check:purgeobot {nick uhost hand chan text} {
global settings
putquick "part $chan :purged as there is another bot $nick. For info/help apply on $settings(suppchan) & \037\00302$settings(homepage)"
channel remove $chan;
check:unbind
check:timersoff $chan 1
return
}
proc check:purgeobot:help {nick uhost hand chan text} {
global settings
putquick "part $chan :purged as there is another bot $nick. For info/help apply on $settings(suppchan) & \037\00302$settings(homepage)"
channel remove $chan;
check:unbind
check:timersoff $chan 2
return
}
proc check:purgeobot:seen {nick uhost hand chan text} {
global settings
putquick "part $chan :purged as there is another bot $nick. For info/help apply on $settings(suppchan) & \037\00302$settings(homepage)"
channel remove $chan;
check:unbind
check:timersoff $chan 3
return
}
################################
proc check:purgemodem {nick host hand chan mc victim} {
global settings
if {[string equal $mc "+m"]} {
putquick "part $chan :purged as moderate mode was enforced. For help apply on $settings(suppchan) & \037\00302$settings(homepage)"
channel remove $chan; pub:save
check:timersoff $chan 3
return
}
}
proc check:purgemodeb {nick host hand chan mc victim} {
global settings
if {[string equal $mc "+b"] $$ [string match -nocase "*$victim*" $::botname]} {
putquick "part $chan :purged as the bot was banned. For help apply on $settings(suppchan) & \037\00302$settings(homepage)"
channel remove $chan; pub:save
check:timersoff $chan 3
return
}
}
#################################################################3
proc register {chan applicant xuser} {
global reg
set reg(chan) $chan
set reg(who) $applicant
set reg(x) "$applicant $applicant $chan pub"
set reg(mix) [split *!*@${xuser}.users.undernet.org]
putallbots "freechans"
bind bot B chansfree bot:chansfree
}