#--------------------------------------------------------------------- # goldensilence.tcl # TCL script for IRC bot eggdrop # Upon public trigger "!topidle" awards gold, silver and bronze # medals for top 3 idlers. # # Note: requires TCL version 8 (version test not included in script) # # v0: 26-Feb-2002 #--------------------------------------------------------------------- bind pub m|m !topidle topidlers proc topidlers { nick uhost hand chan text } { # make a list of nicks and strip out bot set candidates [lrange [chanlist $chan] 1 end] # No gold/silver/bronze if less than 3 :) if {[llength $candidates] < 3} { puthelp "PRIVMSG $chan :Silence is golden. No game in progress." return } # make a list of sub-lists (nickname idletime) foreach idler $candidates { set idletime [getchanidle $idler $chan] set idlelist [lappend idlelist "$idler $idletime"] } # sort on idle time (element 1 of each sub-list) # no sharing of medals, lsort determines the ranking... set ranking [lsort -index 1 -integer -decreasing $idlelist] # assign medals set gold [lindex $ranking 0] set silv [lindex $ranking 1] set bron [lindex $ranking 2] # prepare to output to channel set gold "GOLD: [lindex $gold 0] (idle [lindex $gold 1] min.)" set silv "SILVER: [lindex $silv 0] (idle [lindex $silv 1] min.)" set bron "BRONZE: [lindex $bron 0] (idle [lindex $bron 1] min.)" # make winners public... puthelp "PRIVMSG $chan :Silence is golden! $gold $silv $bron" # log who triggered... return 1 } putlog "Loaded (version 0): Idle game."