rendered paste bodyon $*:TEXT:/^[@!]rsworld */Si:#:{
if ((%publicoff [ $+ [ $chan ] ]) && ($left($1,1) == @)) { halt }
if ($2) {
inc %worldid 1
set %world [ $+ [ %worldid ] ] $2
set %worldnick [ $+ [ %worldid ] ] $nick
set %worldchan [ $+ [ %worldid ] ] $chan
set %worldchar [ $+ [ %worldid ] ] $left($1,1)
sockopen world [ $+ [ %worldid ] ] mrstk.com 80
}
else {
var %msg $iif($left($1,1) == !,notice $nick,msg $chan)
%msg 5Please specify a 2world5.
}
}
on *:SOCKOPEN:world*:{
sockwrite -nt $sockname GET /genie/worlds.php?w= $+ %world [ $+ [ $right($sockname,-5) ] ] HTTP/1.1
sockwrite -nt $sockname Host: mrstk.com
sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:world*:{
if ($sockerr) {
msg %statschan [ $+ [ $right($sockname,-5) ] ] There has been a socket error. This could mean RuneScape have changed their highscore page.
}
else {
var %read
sockread -f %read
if ((World* iswm %read) && (*L* iswm $gettok($gettok(%read,2,58),1,45))) {
var %msg $iif(%worldchar [ $+ [ $right($sockname,-5) ] ] == !,notice %worldnick [ $+ [ $right($sockname,-5) ] ],msg %worldchan [ $+ [ $right($sockname,-5) ] ])
%msg 5Information for world:2 %world [ $+ [ $right($sockname,-5) ] ] $+ 5.
%msg 5Players:2 $remove($gettok($gettok(%read,2,58),1,45),players) 5Location:2 $gettok($gettok(%read,2,58),2,45) 5Status:2 $+ $remove($gettok($gettok(%read,2,58),3,45),<br />)
unset $+(%,world,*,$right($sockname,-5))
}
elseif ((World* iswm %read) && (*L* !iswm $gettok($gettok(%read,2,58),1,45))) {
var %msg $iif(%worldchar [ $+ [ $right($sockname,-5) ] ] == !,notice %worldnick [ $+ [ $right($sockname,-5) ] ],msg %worldchan [ $+ [ $right($sockname,-5) ] ])
%msg 5Information for world:2 %world [ $+ [ $right($sockname,-5) ] ] $+ 5.
%msg 5World2 %world [ $+ [ $right($sockname,-5) ] ] 5isn't a RuneScape world!
unset $+(%,world,*,$right($sockname,-5))
}
}
}
on *:text:?news*:#:{
inc %newsid 1
if ($2 isnum 1-5) {
set %news [ $+ [ %newsid ] ] $2
}
elseif (($2) && ($2 !isnum 1-5)) {
$iif($left($1,1) == @,msg $chan,notice $nick) 5The news item must be a number between 2one5 and 2five5.
}
set %newschar [ $+ [ %newsid ] ] $left($1,1)
set %newsnick [ $+ [ %newsid ] ] $nick
set %newschan [ $+ [ %newsid ] ] $chan
sockopen news [ $+ [ %newsid ] ] jerrcs.net 80
}
on *:text:?rsnews*:#:{
inc %newsid 1
if ($2 isnum 1-5) {
set %news [ $+ [ %newsid ] ] $2
}
elseif (($2) && ($2 !isnum 1-5)) {
$iif($left($1,1) == @,msg $chan,notice $nick) 5The news item must be a number between 2one5 and 2five5.
}
set %newschar [ $+ [ %newsid ] ] $left($1,1)
set %newsnick [ $+ [ %newsid ] ] $nick
set %newschan [ $+ [ %newsid ] ] $chan
sockopen news [ $+ [ %newsid ] ] jerrcs.net 80
}
on *:sockopen:news*:{
sockwrite -nt $sockname GET /rsnews.php HTTP/1.1
sockwrite -nt $sockname Host: jerrcs.net
sockwrite -nt $sockname $crlf
}
on *:sockread:news*:{
if ($sockerr) {
msg %newschan [ $+ [ $right($sockname,-4) ] ] There has been a socket error.
}
else {
var %read
sockread -f %read
if (!$sockbr) { break }
var %nid %news [ $+ [ $right($sockname,-4) ] ]
if (%news [ $+ [ $right($sockname,-4) ] ]) {
if (* $+ %nid Date* iswm %read) {
var %msg $iif(%newschar [ $+ [ $right($sockname,-4) ] ] == @,msg %newschan [ $+ [ $right($sockname,-4) ] ],notice %newsnick [ $+ [ $right($sockname,-4) ] ])
%msg 5 $+ %read
}
if (*[ $+ %nid $+ ]* iswm %read ) {
var %msg $iif(%newschar [ $+ [ $right($sockname,-4) ] ] == @,msg %newschan [ $+ [ $right($sockname,-4) ] ],notice %newsnick [ $+ [ $right($sockname,-4) ] ])
%msg 5 $+ $deltok(%read,1,93)
sockclose news [ $+ [ $right($sockname,-4) ] ]
unset $+(%news,*,$right($sockname,-4))
}
}
elseif (!%news [ $+ [ $right($sockname,-4) ] ]) {
if (* $+ 1 Date* iswm %read) {
var %msg $iif(%newschar [ $+ [ $right($sockname,-4) ] ] == @,msg %newschan [ $+ [ $right($sockname,-4) ] ],notice %newsnick [ $+ [ $right($sockname,-4) ] ])
%msg 5 $+ %read
}
if (*[ $+ 1 $+ ]* iswm %read ) {
var %msg $iif(%newschar [ $+ [ $right($sockname,-4) ] ] == @,msg %newschan [ $+ [ $right($sockname,-4) ] ],notice %newsnick [ $+ [ $right($sockname,-4) ] ])
%msg 5 $+ $deltok(%read,1,93)
sockclose news [ $+ [ $right($sockname,-4) ] ]
unset $+(%news,*,$right($sockname,-4))
}
}
}