All pastes #352369 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-02-12 19:50 UTC
rendered paste body
alias c1 { return $+(02,$1-) }
alias c2 { return $+(04,$1-) }
on *:text:*:#: {
  tokenize 32 $strip($1-)
  if ($left($1,1) !isin @!.) halt
  var %path
  if ($right($1,-1) == stats) %path = $addtok(%path,style=astats,38)
  elseif ($regex($1,/co?mb(at)?$/Si)) %path = $addtok(%path,style=combat,38)
  elseif ($setskill($right($1,-1))) && ($right($1,-1) !isnum 0-23) %path = $addtok($addtok(%path,style=istat,38),$+(skill=,$setskill($right($1,-1))),38)
  elseif ($regex($1,/^!(def|set)(rsn|name)$/Si)) && ($2) {
    if ($len($2-) > 12) {
      .notice $nick $c1(The RSN) $c2($2-) $c1(is too long.)
    }
    elseif ($remove($2-,_,-,$chr(32)) !isalnum) {
      .notice $nick $c1(The RSN) $c2($2-) $c1(contains invalid characters.)
    }
    else {
      writeini DefRSN.ini RSNs $mask($fulladdress,3) $replace($2-,$chr(32),-)
      writeini DefRSN.ini RSNs $nick $replace($2-,$chr(32),-)
      .notice $nick $c1(Your default RSN has been set to) $c2($2-) $+ $c1(.)
    }
    halt
  }
  else halt
  var %ID = 1
  while ($sock($+(stats.,%ID))) inc %ID
  if (#* iswm $2) && ($right($2,-1) isnum) {
    if ($istok(%path,style=istat,38)) && ($right($2,-1) isnum 1-100) {
      %path = $addtok(%path,$+(goal=,$int($right($2,-1))),38)
      tokenize 32 $1 $3-
    }
    elseif ($istok(%path,style=combat,38)) && ($right($2,-1) isnum 3-126) {
      %path = $addtok(%path,$+(goal=,$int($right($2,-1))),38)
      tokenize 32 $1 $3-
    }
  }
  if ($len($2-) > 12) {
    .notice $nick $c1(The RSN) $c2($2-) $c1(is too long.)
    halt
  }
  elseif ($2) {
    if (&* iswm $2) %path = $addtok(%path,$+(rsn=,$iif($readini(DefRSN.ini,RSNs,$address($right($2,-1),3)),$ifmatch,$iif($readini(DefRSN.ini,RSNs,$right($2,-1)),$ifmatch,$right($2,-1)))),38)
    else %path = $addtok(%path,$+(rsn=,$replace($2-,$chr(32),_)),38)
  }
  elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) %path = $addtok(%path,$+(rsn=,$ifmatch),38)
  elseif ($readini(DefRSN.ini,RSNs,$nick)) %path = $addtok(%path,$+(rsn=,$ifmatch),38)
  else %path = $addtok(%path,$+(rsn=,$nick),38)

  %path = $addtok(%path,$+(target=,$iif($left($1,1) == @,$+(msg+,$htmlfrm($chan)),$+(.notice+,$htmlfrm($nick)))),38)
  sockopen $+(stats.,%ID) bluetain.com 80
  sockmark $+(stats.,%ID) %path
}

on *:sockopen:stats.*: {
  sockwrite -n $sockname GET $+(/fave/Hosting/astats.php?,$sock($sockname).mark) HTTP/1.1
  sockwrite -n $sockname Host: bluetain.com $+ $crlf $+ $crlf
}
on *:sockread:stats.*: {
  var %read
  sockread %read
  if ( isin %read) %read
}
alias -l setskill {
  if ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall
  elseif ($regex($1,/^at(t|k|tack)$/Si)) return Attack
  elseif ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence
  elseif ($regex($1,/^str(ength)?$/Si)) return Strength
  elseif ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints
  elseif ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged
  elseif ($regex($1,/^Pray(er)?$/Si)) return Prayer
  elseif ($regex($1,/^mag(e|ic)$/Si)) return Magic
  elseif ($regex($1,/^cook(ing)?$/Si)) return Cooking
  elseif ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting
  elseif ($regex($1,/^fletch(ing)?$/Si)) return Fletching
  elseif ($regex($1,/^fish(ing)?$/Si)) return Fishing
  elseif ($regex($1,/^(fm(ing)?|firemak(e|ing))$/Si)) return Firemaking
  elseif ($regex($1,/^craft(ing)?$/Si)) return Crafting
  elseif ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing
  elseif ($regex($1,/^min(e|ing)?$/Si)) return Mining
  elseif ($regex($1,/^herb(law|lore)?$/Si)) return Herblore
  elseif ($regex($1,/^agil(ity)?$/Si)) return Agility
  elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving
  elseif ($regex($1,/^slay(er|ing)?$/Si)) return Slayer
  elseif ($regex($1,/^farm(er|ing)?$/Si)) return Farming
  elseif ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecraft
  elseif ($regex($1,/^hunt(er|ing)?$/Si)) return Hunter
  elseif ($regex($1,/^con(struct(ion|ing)?)?$/Si)) return Construction
}
alias -l htmlfrm {
  var %i = 1,%r
  while (%i <= $len($1-)) {
    if ($mid($1-,%i,1) isalnum) { %r = %r $+ $ifmatch }
    else { %r = %r $+ % $+ $base($asc($mid($1-,%i,1)),10,16,2) }
    inc %i
  }
  return %r
}