Code: Select all
setudef flag something
...
foreach $ch [chanlist] {
if {[lsearch -exact [channel info $chan] -something] != -1} { continue }
rest of the code..
}
Code: Select all
setudef flag csneed
bind need - * cs:need
proc cs:need {channel type} {
global botnick
if {[lsearch -exact [channel info $channel] -csneed] != -1} { return 0 }
switch -- $type {
"op" {
putserv "PRIVMSG Chanserv :op $channel $botnick"
return 1 }
"unban" {
putserv "PRIVMSG Chanserv :unban $channel $botnick"
return 1 }
"invite" {
putserv "PRIVMSG Chanserv :invite $channel $botnick"
return 1 }
"limit" {
putserv "PRIVMSG Chanserv :invite $channel $botnick"
return 1 }
}
}
Code: Select all
bind mode - "* +b" my:chban
proc cs:chban {nick uhost hand chan mc ban} {
global botname
set bmask "*!*@[lindex [split $uhost @] 1]"
if {[string match "$ban" "$botname"] && [botisop $chan]} {
if {[string match "$bmask" "$botname"]} { set bmask [maskhost *!*[string trimleft $uhost ~]]}
if {$nick == "X" } {
putserv "PRIVMSG Chanserv :unban $chan $bmask"
return } else {
putquick "MODE $chan -bo+b $ban $nick $bmask"
putquick "KICK $chan $nick :\002\00312Don't ban me you twit!" }
return
}
}
Code: Select all
if {[lsearch -exact [channel info $channel] -csneed] != -1} { return 0 }
Code: Select all
setudef flag something
...
foreach $ch [chanlist] {
if {[lsearch -exact [channel info $chan] -something] != -1} { continue }
rest of the code..
}
Code: Select all
set channame "#blah"
set nickserv "nickserv@services.dal.net"
set chanserv "chanserv@services.dal.net"
set memoserv "memoserv@services.dal.net"
set blah "."
set pass "pass.txt"
set nicknametxt "nick.txt"
set fs [open $nicknametxt r]
set nickname [read $fs 32]
bind notc - "*This nick is owned by someone else*" services_ident
bind notc - "*Password accepted*" services_check
bind notc - "*You do not have access to op people*" services_ident
bind time - "5 * *" services_check
bind time - "10 * *" services_check
bind time - "15 * *" services_check
bind time - "20 * *" services_check
bind time - "25 * *" services_check
bind time - "30 * *" services_check
bind time - "35 * *" services_check
bind time - "40 * *" services_check
bind time - "45 * *" services_check
bind time - "50 * *" services_check
bind time - "55 * *" services_check
bind time - "00 * *" services_check
bind pub n|n ${blah}identify pub:ident
bind pub n|n ${blah}op pub:op
bind pub n|n ${blah}test services_check
bind ctcr - PING services_op
bind mode - "* -o" services_autoreop
bind dcc - mem services_memo
bind dcc - down services_shielddown
bind dcc - up services_shieldup
bind dcc - pass services_pass
bind dcc - nickname services_nick
bind pub n|n ${blah}down shield_downpub
bind pub n|n ${blah}up shield_uppub
bind need - * cs:need
proc services_ident {nick channel type} {
global nickname nickserv
if {[lsearch -exact [channel info $channel] -csneed] != -1} { return 0 }
switch -- $type
set fs [open $pass r]
set pass [read $fs 32]
close $fs
putserv "NickServ :identify $nickname $pass"
}
proc services_ping {nick uhost hand args} {
putlog "PING: Trying to ping chanserv"
putserv "PRIVMSG $chanserv :\001PING"
}
proc services_op {nick uhost hand args} {
global botnick chanserv channame
putserv "PRIVMSG $chanserv :OP $channame $botnick"
}
proc services_check {nick uhost hand chan arg} {
global botnick channame chanserv
if {![botisop $channame] && [botonchan $channame] } {
putserv "PRIVMSG $chanserv :\001PING $chanserv"
}
}
proc pub:ident {channel type args} {
global nickname nickserv file pass
if {[lsearch -exact [channel info $channel] -csneed] != -1} { return 0 }
switch -- $type
set fs [open $pass r]
set info [read $fs 32]
putserv "NickServ :identify $info"
close $fs
}
proc pub:op {nick host hand chan text} {
global botnick chanserv channame
putserv "PRIVMSG $chanserv :OP $chan $botnick"
}
proc services_autoreop {nick uhost hand chan deop deopd} {
global botnick channame
if {[matchattr $hand n|m]} { return }
if {([string match -nocase $deopd $botnick]) } {
putserv "ChanServ op $channame $botnick"
}
}
proc services_autounban {chan unban} {
global channame botnick
putserv "ChanServ unban $channame"
}
proc services_memo {hand idx text} {
global memoserv
putserv "PRIVMSG $memoserv $text"
}
proc services_shielddown {hand idx arg} {
global botnick
putserv "MODE $botnick -R"
}
proc services_shieldup {hand idx arg} {
global botnick
putserv "MODE $botnick +R"
}
proc shield_downpub {nick host hand chan text} {
global botnick
putserv "MODE $botnick -R"
}
proc shield_uppub {nick host hand chan text} {
global botnick
putserv "MODE $botnick +R"
}
setudef flag csneed
bind need - * cs:need
proc cs:need {channel type} {
global botnick
if {[lsearch -exact [channel info $channel] -csneed] != -1} { return 0 }
switch -- $type {
"unban" {
putserv "chanserv :unban $channel $botnick"
return 1 }
"invite" {
putserv "chanserv :invite $channel $botnick"
return 1 }
"limit" {
putserv "chanserv :invite $channel $botnick"
return 1 }
}
}
proc services_pass {hand idx text} {
global pass
if {![matchattr $hand n]} { return }
set fs [open $pass w]
puts $fs "$text"
putlog "Services: Nickpass has been set to ****"
close $fs
}
proc services_nick {hand idx text} {
global nicknametxt
if {![matchattr $hand n]} { return }
set fs [open $nicknametxt w]
puts $fs "$text"
close $fs
putlog "Services: Nickname has been set to $text"
}
Code: Select all
proc pub:ident {channel type args} {
Code: Select all
proc testing {this that} {
puts stdout "THIS: $this"
puts stdout "THAT: $that"
}
set this "Hello"
set that "all"
testing $this $that
testing $that $this
Just because that name of the variable matches, it doesn't mean the contents will. The same applies in your script, even though you have a variable called channel, it doesn't mean it will contain a channel name. It will simply hold the contents of the information destined for that argument position.THIS: Hello
THAT: all
THIS: all
THAT: Hello