on $*:TEXT:/^[!@.]/Si:#:{ inc %ID var %line10 = $remove($1,$left($1,1)) tokenize 32 $strip($1-) if ($right($1,-1) == stats) { var %style = astats if ($left($2,1) == $chr(35)) { tokenize 32 $1 $remove($2,$chr(35)) $3- if ($remove($2,-) isnum 30-9999) { set $+(%,stats.gl.,%id) $2 if ($3) { set $+(%,stats.rsn.,%id) $replace($3-,$chr(32),-) } elseif ($readini(DefRSN.ini,-n,RSNs,$mask($fulladdress,3))) { set $+(%,stats.rsn.,%id) $ifmatch } else { $iif($left($1,1) == @,msg $chan,notice $nick) You must specify a player to look up. To set a default player, use !defname halt } } } elseif ($2) { set $+(%,stats.rsn.,%id) $replace($2-,$chr(32),-) } elseif ($readini(DefRSN.ini,-n,RSNs,$mask($fulladdress,3))) { set $+(%,stats.rsn.,%id) $ifmatch } else { $iif($left($1,1) == @,msg $chan,notice $nick) You must specify a player to look up. To set a default player, use !defname halt } } elseif ($regex($1,/co?mb(at)?/Si)) { if (*%* iswm $1) var %style = per else var %style = combat if ($2) { set $+(%,stats.rsn.,%ID) $replace($3-,$chr(32),-) } elseif ($readini(DefRSN.ini,-n,RSNs,$mask($fulladdress,3))) set $+(%,stats.rsn.,%ID) $ifmatch else { $iif($left($1,1) == @,msg $chan,notice $nick) You must specify a player to look up. To set a default player, use !defname halt } } elseif ($regex($1,/pc|pest(con)?(trol)?/Si)) { var %style = pc if ($2) { set $+(%,stats.rsn.,%ID) $replace($3-,$chr(32),-) } elseif ($readini(DefRSN.ini,-n,RSNs,$mask($fulladdress,3))) set $+(%,stats.rsn.,%ID) $ifmatch else { $iif($left($1,1) == @,msg $chan,notice $nick) You must specify a player to look up. To set a default player, use !defname halt } } elseif ($setskill($remove($1,@,!,.))) { var %style = istat, %skill = $setskill($remove($1,@,!,.)) if ($2) { set $+(%,stats.rsn.,%ID) $replace($3-,$chr(32),-) } elseif ($readini(DefRSN.ini,-n,RSNs,$mask($fulladdress,3))) set $+(%,stats.rsn.,%ID) $ifmatch else { $iif($left($1,1) == @,msg $chan,notice $nick) You must specify a player to look up. To set a default player, use !defname halt } } elseif ($right($1,-1) == defname) && ($2) { writeini -n DefRSN.ini RSNs $mask($fulladdress,3) $replace($2-,$chr(32),-) notice $nick Your default username is now " $+ $2- $+ ". This defname is associated with the address $mask($fulladdress,3) halt } else halt if ($len($($+(%,stats.rsn.,%ID),2)) > 12) { $iif($left($1,1) == @,msg $chan,notice $nick) *** [ $($+(%,stats.rsn.,%ID),2) ]: is to long to be a RSN cleanup %ID halt } set $+(%,stats.style.,%ID) %style set $+(%,stats.skill.,%ID) %skill set $+(%,stats.display.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) sockopen stats. $+ %ID hiscore.runescape.com 80 } on *:SOCKOPEN:stats.*: { var %id = $gettok($sockname,2,46) sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,stats.rsn.,%ID),2) HTTP/1.1 sockwrite -n $sockname Host: hiscore.runescape.com sockwrite -n $sockname $+($crlf,$crlf) } on *:SOCKREAD:stats.*: { var %ID = $gettok($sockname,2,46) if ($sockerr) { $($+(%,stats.style.,%ID),2) *** [ Stats ]: Unable to connect cleanup %id } else { sockread &Incoming bwrite $sockname -1 -1 &Incoming if ($bfind(&Incoming, 1, ).text && !$($+(%,stats.active.,%id),2)) { makehash $sockname } elseif ($bfind(&Incoming, 1, does not feature in the hiscores.).text) { set $+(%,stats.active.,%id) on $($+(%,stats.display.,%ID),2) *** [ $($+(%,stats.rsn.,%ID),2) ]: does not appear in the hiscores list cleanup %id } } } alias -l makehash { var %file = $1 bread %file 1 $file(%file).size &stats var %currentstat, %x = 1 while (%x) { var %x = $bfind(&stats,$calc(%x + 1),