All pastes #594587 Raw Edit

Unnamed

public text v1 · immutable
#594587 ·published 2007-06-29 00:28 UTC
rendered paste body
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 (*</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 
}