matrix — File Browser

matrixv0.9a / matrixv0.9a / 5d.mrc

5d.mrc — 6.46 KB — Download this file

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                           ;;
;;     5D.mrc • copyright © 1999 s4ndm4n       ;;
;;                                                                           ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;5D is an IRCX enhanced socket bot for mIRC v5.51+
;to load 5D, type /5D in any window then follow the directions

on *:load:echo -es 12L» 145D.mrc 15• 14copyright © 1999 s4ndm4n

alias 5D {
  window -aekl7 +l @5D 0 0 250 150 verdana 9
  background @5D $mircdir5D.bmp
  aline @5D 155D v1.01a by s4ndm4n
  aline @5D 1,1.
  aline @5D 12connect: 14/srv irc.msn.com
  aline @5D 12join: 14/jn #channel
}

alias srv {
  %5D.srv = $1
  if ($2) %5D.prt = $2
  else %5D.prt = 6667
  sockclose 5D
  sockopen 5D %5D.srv %5D.prt
  aline @5D 12c» 14connecting...
}

alias jn sockwrite -nt 5D join $1-

alias rkey return $r(a,z) $+ $r(0,9) $+ $r(A,Z) $+ $r(a,z) $+ $r(a,z) $+ $r(A,Z) $+ $r(0,9) $+ $r(0,9) $+ $r(a,z)

menu @5D {
  $iif($mouse.win == $null,part):sockwrite -nt 5D part $sline(@5D,1)
  $iif($mouse.win,about):aline @5D 5D © 1999 s4ndm4n
  -
  $iif($mouse.win,shutdown): {
    unset %5D.*
    sockclose 5D
    window -c @5D
  }
}

on *:sockopen:5D: {
  if ($sockerr) echo 9 -s SOCKERR!!! ON SOCKOPEN!!!!!
  sockwrite -nt 5D user 5D! 5D 5D :three/dee
  sockwrite -nt 5D ircx
  sockwrite -nt 5D nick '^5D
  sockwrite -nt 5D host.ip '^5D
  aline @5D 12c»14 %5D.srv $+ : $+ %5D.prt
  aline @5D 12r» 14registering...
}

on *:sockread:5D: {
  if ($sockerr) echo 9 -s SOCKERR!!!!! AT BEGINNING OF SOCKREAD!!!!!!
  :read
  sockread %5D.d
  if ($sockbr == 0) return
  if (:* iswm %5D.d) %5D.n = $right($gettok($gettok(%5D.d,1,32),1,33),$calc($len($gettok($gettok(%5D.d,1,32),1,33)) - 1))
  else %5D.n = $gettok(%5D.d,1,32)
  %5D.p = $gettok(%5D.d,2,32)
  %5D.c = $gettok(%5D.d,3,32)
  %5D.df = $gettok(%5D.d,4,32)
  if (:* iswm $gettok(%5D.d,5,32)) %5D.k = $right($gettok(%5D.d,5,32),$calc($len($gettok(%5D.d,5,32)) - 1))
  else %5D.k = $gettok(%5D.d,5,32)

  if (%5D.df == ownerkey) {
    if (%5D.k == $null) sockwrite -nt 5D prop %5D.c ownerkey $rkey
    else {
      %5D.key. [ $+ [ %5D.c ] ] = %5D.k
      aline @5D 12k»14 %5D.c 12->14 %5D.k
    }
    return
  }
  elseif (%5D.df == -q) && (%5D.n != '^5D) && (%5D.n != $me) {
    if (%5D.k == '^5D) {
      sockwrite -nt 5D part %5D.c
      sockwrite -nt 5D join %5D.c %5D.key. [ $+ [ %5D.c ] ]
      sockwrite -nt 5D mode %5D.c -q %5D.n
      sockwrite -nt 5D prop %5D.c ownerkey $rkey
      sockwrite -nt 5D access %5D.c clear
      sockwrite -nt 5D access %5D.c add owner $ip
      aline @5D 4q»15 %5D.c 4/15 %5D.n
    }
    elseif (%5D.k == $me) {
      sockwrite -nt 5D mode %5D.c -q+q %5D.n $me
      sockwrite -nt 5D prop %5D.c ownerkey $rkey
      sockwrite -nt 5D access %5D.c clear
      sockwrite -nt 5D access %5D.c add owner $ip
    }
    return
  }
  elseif (%5D.p == kick) && (%5D.n != '^5D) && (%5D.n != $me) {
    if (%5D.df == '^5D) {
      sockwrite -nt 5D join %5D.c %5D.key. [ $+ [ %5D.c ] ]
      sockwrite -nt 5D mode %5D.c -q %5D.n
      sockwrite -nt 5D prop %5D.c ownerkey $rkey
      sockwrite -nt 5D access %5D.c clear
      sockwrite -nt 5D access %5D.c add owner $ip
      aline @5D 4k»15 %5D.c 4/15 %5D.n
      dline -l @5D $fline(@5D, [ %5D.c ] ,1,1)
    }
    if (%5D.df == $me) {
      sockwrite -nt 5D mode %5D.c -q %5D.n
      sockwrite -nt 5D prop %5D.c ownerkey $rkey
      sockwrite -nt 5D access %5D.c clear
      sockwrite -nt 5D access %5D.c add owner $ip
      sockwrite -nt 5D invite $me %5D.c
    }
    return
  }
  elseif (%5D.df == +q) && (%5D.k == '^5D) {
    if ($istok(%5D.q,%5D.c,32) == $false) {
      sockwrite -nt 5D prop %5D.c ownerkey $rkey
      sockwrite -nt 5D access %5D.c add owner $ip
      cline -l 12 @5D $fline(@5D, [ %5D.c ] ,1,1)
      %5D.q = %5D.q %5D.c
    }
    return
  }
  elseif (%5D.p == 302) && ($ip == $null) {
    %5D.ip = *!*@ $+ $gettok($gettok($gettok(%5D.d,4,32),2,64),1-3,46) $+ .*
    aline @5D 12r»14 $ip
    if (%5D.q) {
      %5D.rj = $numtok(%5D.q,32)
      :begin
      if (%5D.rj == 0) {
        unset %5D.rj
        return
      }
      sockwrite -nt 5D join $gettok(%5D.q,%5D.rj,32) %5D.key. [ $+ [ $gettok(%5D.q,%5D.rj,32) ] ]
      dec %5D.rj
      goto begin
    }
    return
  }
  elseif (%5D.p == 353) {
    %5D.c = $gettok(%5D.d,5,32)
    %5D.nm = $right($gettok(%5D.d,6,32),$calc($len($gettok(%5D.d,6,32)) - 1))
    if ($istok(%5D.nm,.'^5D,32)) {
      cline -l 12 @5D $fline(@5D, [ %5D.c ] ,1,1)
      %5D.q = %5D.q %5D.c
      if (%5D.nm == .'^5D) {
        sockwrite -nt 5D prop %5D.c ownerkey $rkey
        sockwrite -nt 5D access %5D.c add owner $ip
      }
    }
    return
  }
  elseif (%5D.p == join) {
    %5D.c = $right(%5D.c,$calc($len(%5D.c) - 1))
    if (%5D.n == '^5D) {
      aline @5D 12j»14 %5D.c
      aline -l 14 @5D %5D.c
    }
    elseif (%5D.n == $me) sockwrite -nt 5D mode %5D.c +q $me
    return
  }
  elseif (%5D.p == part) {
    if (%5D.n == '^5D) {
      aline @5D 12p»14 %5D.c
      dline -l @5D $fline(@5D,%5D.c,1,1)
      %5D.q = $remtok(%5D.q,%5D.c,32)
    }
    return
  }
  elseif (%5D.p == privmsg) && (%5D.n == $me) {
    if (%5D.df == :.qme) sockwrite -nt 5D mode %5D.c +q $me
    elseif (%5D.df == :.die) {
      sockclose 5D
      unset %5D.*
      window -c @5D
    }
    return
  }
  elseif (%5D.n == ping) sockwrite -nt 5D pong %5D.p
  goto read
}

on @!*:join:#:if ($nick == ^5D) .raw mode $chan +q '^5D

on @!*:deop:#: {
  if ($istok(%5D.q,$chan,32)) {
    if ($opnick == ^5D) .raw mode $chan -q $nick
    elseif ($opnick == $me) .raw privmsg $chan .qme
  }
}

on !*:kick:#: {
  if ($istok(%5D.q,$chan,32)) {
    if ($knick == ^5D) && ($me isop $chan) .raw mode $chan -q $nick
    elseif ($knick == $me) {
      .raw join $chan %5D.key. [ $+ [ $chan ] ]
      .raw mode $chan -q $nick
    }
  }
}

on *:disconnect:server %5D.srv %5D.prt

on *:connect: {
  if (%5D.q) {
    %rj = $numtok(%5D.q,32)
    :begin
    if (%rj == 0) {
      unset %rj
      halt
    }
    .raw join $gettok(%5D.q,%rj,32) %5D.key. [ $+ [ $gettok(%5D.q,%rj,32) ] ]
    dec %rj
    goto begin
  }
}

on *:sockclose:5D: {
  aline @5D 12d»14 disconnected
  srv %5D.srv %5D.prt
}

on *:close:@: {
  if ($target == @5D) {
    sockclose 5D
    unset %5D.*
  }
}