TCL Chan Limit

Chan Limit

# ChanLimit by Nils Ostbjerg <shorty@business.auc.dk>

# limit = users count + num
set num 5

bind time - "* * * * *" time:ChanLimit

proc time:ChanLimit {min hour day month year} {
    global num
    foreach chan [channels] {
	set newlimit [expr [llength [chanlist $chan]] + $num]
	set currentlimit [currentlimit $chan]
	if {$currentlimit < [expr $newlimit - 1] || $currentlimit > [expr $newlimit + 1]} {
	    putserv "mode $chan +l $newlimit"
	}
    }    
}
proc currentlimit {chan} {
    set currentmodes [getchanmode $chan]
    if {[string match "*l*" [lindex $currentmodes 0]]} {
	return [lindex $currentmodes end] 
    }
    return 0
}
putlog "Channel Limit loaded"