on $*:TEXT:/^[!@.]stats/Si:#: { if ($2 == -rank) { set %stats.style rank } elseif ($2 == exp) { set %stats.style exp } elseif ($2 == level) { set %stats.style level } else { set %stats.style level } set %stats.display $iif($left($1,1) == @,msg $chan,notice $nick) set %stats.user $iif($left($2,1) != -,$replace($2-,$chr(32),_),$replace($3-,$chr(32),_)) set %stats.n 0 sockopen stats hiscore.runescape.com 80 } on *:SOCKOPEN:stats: { sockwrite -n $sockname GET $+(/hiscorepersonal.ws?user1=,%stats.user) HTTP/1.1 sockwrite -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf } on *:SOCKREAD:stats: { var %i | sockread %i if ($statstrue(%i)) { set %stats.skill %i | set %stats.n 1 } elseif (*does not feature in the hiscores.* iswm %i) { %stats.display $c1(The username ") $+ $c2(%stats.user) $+ $c1(" does not appear in the Runescape Hiscores.) unset %stats.* | sockclose stats } elseif (%stats.n isnum 3-5) { set $+(%,stats.,%stats.skill,.,$statstype(%stats.n)) $gettok($gettok(%i,2,62),1,60) if (%stats.n == 5) { set %stats.n 0 } } elseif (** iswm %i) { var %x = 1 while (%x <= 23) { var %statline = %statline $iif($($+(%,stats.,$statstrue(%x),.level),2),$c1($statstrue(%x) $+ :) $c2($($+(%,stats.,$statstrue(%x),.,%stats.style),2)),$null) inc %x } %stats.display $c1(Stats for) $c2(%stats.user) $+($c1,$chr(40),Overall: $iif(%stats.Overall.level,$c2($($+(%,stats.Overall.,%stats.style),2)),$c2(N/A)),$c1,$chr(41),:) %stats.display %statline | unset %stats.* | sockclose stats } if (%stats.n isnum 1-5) { inc %stats.n } } alias c1 { return $+($chr(3),01,$1-) } alias c2 { return $+($chr(3),07,$1-) } alias statstype { if ($1 == 3) { return rank } elseif ($1 == 4) { return level } else { return exp } } alias statstrue { if ($1 == 0) || ($1 == Overall) { return Overall } elseif ($1 == 1) || ($1 == Attack) { return Attack } elseif ($1 == 2) || ($1 == Defence) { return Defence } elseif ($1 == 3) || ($1 == Strength) { return Strength } elseif ($1 == 4) || ($1 == Hitpoints) { return Hitpoints } elseif ($1 == 5) || ($1 == Ranged) { return Ranged } elseif ($1 == 6) || ($1 == Prayer) { return Prayer } elseif ($1 == 7) || ($1 == Magic) { return Magic } elseif ($1 == 8) || ($1 == Cooking) { return Cooking } elseif ($1 == 9) || ($1 == Woodcutting) { return Woodcutting } elseif ($1 == 10) || ($1 == Fletching) { return Fletching } elseif ($1 == 11) || ($1 == Fishing) { return Fishing } elseif ($1 == 12) || ($1 == Firemaking) { return Firemaking } elseif ($1 == 13) || ($1 == Crafting) { return Crafting } elseif ($1 == 14) || ($1 == Smithing) { return Smithing } elseif ($1 == 15) || ($1 == Mining) { return Mining } elseif ($1 == 16) || ($1 == Herblore) { return Herblore } elseif ($1 == 17) || ($1 == Agility) { return Agility } elseif ($1 == 18) || ($1 == Thieving) { return Thieving } elseif ($1 == 19) || ($1 == Slayer) { return Slayer } elseif ($1 == 20) || ($1 == Farming) { return Farming } elseif ($1 == 21) || ($1 == Runecraft) { return Runecraft } elseif ($1 == 22) || ($1 == Hunter) { return Hunter } elseif ($1 == 23) || ($1 == Construction) { return Construction } else return $null }