#Read the comments downwards... 

#this procedure returns:
#-1, if the chan is NOT set
#0 and upwards, if the chan IS set
proc chanchecker {chan} {lsearch -exact [channel info $chan] {+idlestats}}

proc top10 {nick uhost hand chan arg} {
   #global the var
   global irpg
   set tok [::http::geturl $irpg(url)/$irpg(players)]]
   
   #THIS IS WHERE YOU ARE WRONG, AS YOU HAVE TO EVALUATE THE RETURNED VALUE
   if {[chanchecker $chan] != -1} {
      #the returned value WAS NOT EQUAL TO 1, meaning the channel is set... now do your stuff
      regexp -all -- {<ol>(.+?)</ol>} [::http::data $token] x players
      ::http::cleanup $token
      foreach line [lrange [split $players \n] 6 10] {
         set out [unhtml $line]
         incr lines
         nowbitch "PRIVMSG $chan :7$lines.  $out"
       }
   }
}

# Good luck...
# -GoMp