namespace eval allmodes { set voicetime 119 set optime 239 } if {$username=="Newsflash"} { namespace eval allmodes { set voicetime 29 set optime 569 } } if {$username=="b0rkBerlin"} { namespace eval allmodes { set voicetime 239 set optime 539 } } if {$username=="Tuersteher"} { namespace eval allmodes { set voicetime 149 set optime [expr 14*60+29] } } setudef flag alldelayed setudef flag allvoice setudef flag allop setudef flag allsilence catch {unbind join - * *join:allmodes} bind join - * *allmodes:join bind time - * *allmodes:time bind pub mn|nm -allmodes *allmodes:change bind pub mn|nm "$::botnick-allmodes" *allmodes:change proc *allmodes:join {nick uhost hand chan} { if {[isbotnick $nick] || ![botisop $chan] || [matchattr $hand +d|+dk $chan] || [matchattr [nick2hand $nick] +d|+dk $chan]} {return 0} if {[channel get $chan allvoice] && ![channel get $chan alldelayed]} { pushmode $chan +v $nick } if {[channel get $chan allop] && ![channel get $chan alldelayed]} { pushmode $chan +o $nick } } proc *allmodes:time { {args ""} } { set unixtime [clock seconds] foreach chan [string tolower [channels]] { if {[channel get $chan alldelayed]} { foreach nick [chanlist $chan] { if {![isop $nick $chan]} { set jointime [getchanjoin $nick $chan] if {[expr $unixtime-$jointime]>$allmodes::voicetime && ![isvoice $nick $chan] && [channel get $chan allvoice] && ![matchattr [nick2hand $nick] +d|+dk $chan]} { pushmode $chan +v $nick } if {[expr $unixtime-$jointime]>$allmodes::optime && ![isop $nick $chan] && [channel get $chan allop] && ![matchattr [nick2hand $nick] +d|+dk $chan]} { pushmode $chan +o $nick } } } } } } proc *allmodes:change {nick host hand chan args} { if {[isbotnick $nick] || ![botisop $chan]} { return 0 } foreach setting [channel info $chan] { if {[regexp -- {^[\+-]} $setting]} { if {![string compare "+allsilence" $setting]} { return 0; }} } set chanstatus [list] set args [join $args] set mode [lindex $args 0] set setting [lindex $args 1] if {$mode!="silence" && $mode!="op" && $mode!="voice" && $mode!="delayed" && $mode!=""} { allmodes:showusage $nick; return 0} if {$setting=="on" || $setting=="off"} { if {$setting=="on"} {channel set $chan +all$mode} if {$setting=="off"} {channel set $chan -all$mode} } foreach setting [channel info $chan] { if {$setting=="-allop"} {lappend chanstatus "Allop is disabled,"} if {$setting=="+allop"} {lappend chanstatus "Allop is enabled,"} if {$setting=="-allvoice"} {lappend chanstatus "Allvoice is disabled,"} if {$setting=="+allvoice"} {lappend chanstatus "Allvoice is enabled,"} if {$setting=="-alldelayed"} {lappend chanstatus "Delayed is disabled"} if {$setting=="+alldelayed"} {lappend chanstatus "Delayed is enabled"} } set statmsg ""; foreach status $chanstatus { set statmsg "$statmsg $status" } puthelp "NOTICE $nick :$statmsg" } proc allmodes:showusage {nick} {putquick "NOTICE $nick :Usage: !allmodes "} putcmdlog "Loaded allmodes.tcl by N*ver and CyBex."