rendered paste bodyon $*: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 (*</table>* 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
}