Stealth Script — File Browser

StealthScriptv1.0 / StealthScriptv1.0 / Stealth / Programs / irc2.mrc

irc2.mrc — 12.8 KB — Download this file

menu channel,menubar,status {
  -
  IRC Server 2
  .Dal:/sockopen irc irc.dal.net 6667
  .TotallyIRC:/sockopen irc irc.totallyirc.com 6667
  .-
  .Different:/sockopen irc $$?="Server" $$?="Port"
  .-
  .Disconnect:/window -c @Irc2
  .-
  .Set Nickname:/set %irc2.nick $$?"New Nickname"
}
on 1:CLOSE:@Irc2:{
  sockclose irc
  set %close.x 1
  :loop
  set %cur.win $window(@#*,%close.x)
  if %cur.win == $null { goto privwins }
  window -c $window(@#*,%close.x)
  inc %close.x
  goto loop
  :privwins
  set %close.x 1
  :loop1
  if $window(@C*,%close.x) == $null { goto end }
  window -c $window(@C*,%close.x)
  inc %close.x
  goto loop1
  :end
  echo -s Disconnecting from Irc Server 2!
}
on 1:CLOSE:@#*:{
  set %target $target
  set %target $remove(%target,@)
  sockwrite -n irc PART %target
}
on 1:input:@#*:{
  if $1 == /me { goto action }
  if $left($1,1) == / {
    irccommand $1-
  }
  set %talk.chan $active
  set %talk.chan $remove(%talk.chan,@)
  sockwrite -n irc privmsg %talk.chan : $+ $1-
  aline -p $active $timestamp < $+ %irc2.nick $+ > $1-
  halt
  :action
  set %talk.chan $active
  set %talk.chan $remove(%talk.chan,@)
  sockwrite -n irc privmsg %talk.chan : $+ $chr(1) $+ ACTION $2- $+ $chr(1)
  aline -p $active 11 $+ $timestamp * %irc2.nick $2-
  halt
}
on 1:input:@Irc2:{
  if $left($1,1) == / {
    irccommand $1-
  }
  aline @Irc2 15*** Please Dont Talk in the status Window
  halt
}
on 1:sockopen:irc:{
  if $sockerr > 0 {
    halt
  }
  sockwrite -n irc user hey
  sockwrite -n irc nick %irc2.nick
  window -e @Irc2 -10 -10 800 700
}
alias irccommand {
  set %prefix $1
  if %prefix == /nick {
    set %irc2.nick $2-
  }
  if %prefix == /msg {
    sockwrite -n irc privmsg $2 : $+ $3-
    halt
  }
  set %prefix $remove(%prefix,/)
  sockwrite -n irc %prefix $2 : $+ $3-
  halt
}
alias ircchanmode {
  set %source $gettok(%var,1,32)
  set %source $left(%source,$pos(%source,!,1))
  set %source $remove(%source,!,:)
  set %mode $gettok(%var,4,32)
  set %tmode $gettok(%var,5,32)
  aline -p @ $+ $gettok(%var,3,32) 15 $+ $timestamp *** %source Sets Mode: $+ %mode %tmode
  set %chan $gettok(%var,3,32)
  set %wind.chan @ $+ %chan
  set %person.nick %tmode
  set %person.nick1 * $+ %tmode
  if %mode == +o {
    rline -l %wind.chan $fline(%wind.chan,%person.nick1,1,1) @ $+ %person.nick
  }
  if %mode == -o {
    rline -l %wind.chan $fline(%wind.chan,%person.nick1,1,1) %person.nick
  }
  if %mode == +v {
    rline -l %wind.chan $fline(%wind.chan,%person.nick1,1,1) + $+ %person.nick
  }
  if %mode == -v {
    rline -l %wind.chan $fline(%wind.chan,%person.nick1,1,1) %person.nick
  }
}
on 1:sockread:irc:{
  sockread %var
  set %server.name $gettok(%var,1,32)
  set %server.name $remove(%server.name,:)
  if QUIT == $gettok(%var,2,32) {
    quitirc
  }
  if PING == $gettok(%var,1,32) {
    set %2 $gettok(%var,2,32)
    sockwrite -n irc pong %2
    aline @Irc2 15PING? PONG!
    halt
  }
  if JOIN == $gettok(%var,2,32)  {
    set %irc2.chan $gettok(%var,3,32)
    set %irc2.chan $remove(%irc2.chan,:)
    ircjoinchan %irc2.chan
  }
  if KICK == $gettok(%var,2,32) {
    irckick
  }
  if 0 isin $gettok(%var,2,32) || 1 isin $gettok(%var,2,32) || 2 isin $gettok(%var,2,32) || 3 isin $gettok(%var,2,32) || 4 isin $gettok(%var,3,32) || 5 isin $gettok(%var,2,32) || 6 isin $gettok(%var,2,32) || 7 isin $gettok(%var,2,32) || 8 isin $gettok(%var,2,32) || 9 isin $gettok(%var,2,32) {
    rawcommand
  }
  if PART == $gettok(%var,2,32) {
    ircpart
  }
  if NICK == $gettok(%var,2,32) {
    ircnick
  }
  if MODE == $gettok(%var,2,32) {
    if $chr(35) == $left($gettok(%var,3,32),1) {
      ircchanmode
    }
    if $chr(35) != $left($gettok(%var,3,32),1) {
      set %mode $gettok(%var,4,32)
      set %mode $remove(%mode,:)
      echo @Irc2 15 $+ *** %irc2.nick Sets Mode %mode
    }
    halt
  }
  if PRIVMSG == $gettok(%var,2,32) {
    ircchanmsg %var
  }
  if NOTICE AUTH == $gettok(%var,2-3,32) {
    connectnotice
  }
  if TOPIC == $gettok(%var,2,32) {
    set %nick.topic $gettok(%var,1,32)
    set %nick.topic $left(%nick.topic,$pos(%nick.topic,!,1))
    set %nick.topic $remove(%nick.topic,:,!)
    set %new.topic $gettok(%var,4-1000,32)
    set %new.topic $right(%new.topic,$calc($len(%new.topic) - 1))
    aline -p @ $+ $gettok(%var,3,32) 15 $+ $timestamp *** %nick.Topic Changes Topic To ' $+ %new.topic $+ '
    halt
  }
  if NOTICE == $gettok(%var,2,32) {
    set %say.not $gettok(%var,4-1000,32)
    set %nick.not $gettok(%var,1,32)
    set %nick.not $left(%nick.not,$pos(%nick.not,!,1))
    set %nick.not $remove(%nick.not,!,:)
    aline -p @Irc2 15 $+ $timestamp *** - $+ %nick.not $+ - %say.not
    halt
  }
  if %var == $null { aline @Irc2 12- | halt }
  aline @Irc2 %var
  :end
  halt
}
alias quitirc {
  set %win.x 1
  set %quit.reason $gettok(%var,3-1000,32)
  set %quit.reason $right(%quit.reason,$calc($len(%quit.reason) - 1))
  set %quit.nick $gettok(%var,1,32)
  set %quit.host %quit.nick
  set %quit.nick $left(%quit.nick,$pos(%quit.nick,!,1))
  set %quit.nick $remove(%quit.nick,!,:)
  set %quit.host $right(%quit.host,$calc($len(%quit.host) - 1))
  set %person.nick1 * $+ %quit.nick
  set %person.nick1 $remove(%person.nick1,:)
  :loop
  set %wind.chan $window(@*,%win.x)
  if $window(@*,%win.x) == $null { 
    halt
  }
  aline -p $window(@*,%win.x)  15 $+ $timestamp *** Quits: %quit.nick ( $+ %quit.host $+ ) Has quit IRC: ( $+ %quit.reason $+ )
  if $window(@*,%win.x) == @Irc2 {
  }
  set %nick.line $fline(%wind.chan,%person.nick1,1,1)
  if %nick.line != $null {
    dline -l %wind.chan %nick.line
  }
  inc %win.x
  goto loop
  :end
  halt
}
alias ircnick {
  set %win.x 1
  set %person.nick $gettok(%var,1,32)
  set %person.nick $left(%person.nick,$pos(%person.nick,!,1))
  set %person.nick $remove(%person.nick,!,:)
  set %newnick $gettok(%var,3,32)
  set %newnick $remove(%newnick,:)
  :loop
  set %win.nick $window(@*,%win.x)
  if %win.nick == $null { goto end }
  if %win.nick != @Irc2 {
    set %person.nick3 * $+ %person.nick
    set %line.nick $fline(%win.nick,%person.nick3,1,1)
    if %line.nick != $null {
      aline -p %win.nick 15 $+ $timestamp *** %person.nick Is Now Known as %newnick
      rline -l %win.nick %line.nick %newnick
    }
  }
  inc %win.x
  goto loop
  :end
  halt
}
alias irckick {
  set %person.nick $gettok(%var,1,32)
  set %chan $gettok(%var,3,32)
  set %chan %chan
  set %kicked.nick $gettok(%var,4,32)
  set %kicked.reason $gettok(%var,5-1000,32)
  if %person.nick != %irc2.nick {
    set %chan $gettok(%var,3,32)
    set %kicked.nick $gettok(%var,4,32)
    set %kicked.reason $gettok(%var,5-1000,32)
    set %kicked.reason $remove(%kicked.reason,:)
    set %person.nick $left(%person.nick,$pos(%person.nick,!,1))
    set %person.nick $remove(%person.nick,!,:)
    aline -p @ $+ %chan 15 $+ $timestamp *** %kicked.nick Was Kicked From %chan By %person.nick ( $+ %kicked.reason $+ )
    set %wind.chan @ $+ %chan
    set %person1.nick * $+ %kicked.nick
    dline -l %wind.chan $fline(%wind.chan,%person1.nick,1,1)
  }
  if %kicked.nick == %irc2.nick {
    window -c @ $+ %chan
    set %person.host $gettok(%var,1,32)
    set %person.host1 $left(%person.host,$pos(%person.host,!,1))
    set %person.nick1 $left(%person.host,$pos(%person.host,!,1))
    set %person.host2 $remove(%person.host,%person.nick1)
    aline -p @Irc2 15 $+ $timestamp *** You were Kicked from %chan by %person.nick ( $+ %kicked.reason $+ )
    aline -p @Irc2 11-
  }
}
alias ircjoinchan {
  set %chan $1
  set %irc2.chan $gettok(%var,3,32)
  set %irc2.chan $remove(%irc2.chan,:)
  set %person.nick $gettok(%var,1,32)
  set %person.nick $left(%person.nick,$pos(%person.nick,!,1))
  set %person.nick $remove(%person.nick,!,:)
  if %person.nick == %irc2.nick {
    window -g1Sel10 @ $+ %chan -10 -10 800 700
    halt
  }
  unset %chan. $+ %chan
  set %chan $1
  set %person.host $gettok(%var,1,32)
  set %person.host1 $left(%person.host,$pos(%person.host,!,1))
  set %person.nick1 $left(%person.host,$pos(%person.host,!,1))
  set %person.host2 $remove(%person.host,%person.nick1)
  aline -p @ $+ %chan 0 $+ $timestamp *** %person.nick ( $+ %person.host2 $+ ) Has Joined $1
  aline -l @ $+ %chan %person.nick
  set %chan. $+ %chan %chan. [ $+ [ %chan ] ] %person.nick
  halt
}
alias ircpart {
  set %person.nick $gettok(%var,1,32)
  set %person.nick $left(%person.nick,$pos(%person.nick,!,1))
  set %person.nick $remove(%person.nick,!,:)
  set %chan $gettok(%var,3,32)
  if %person.nick != %irc2.nick {
    set %chan %chan
    set %person.host $gettok(%var,1,32)
    set %person.host1 $left(%person.host,$pos(%person.host,!,1))
    set %person.nick1 $left(%person.host,$pos(%person.host,!,1))
    set %person.host2 $remove(%person.host,%person.nick1)
    set %person.nick1 * $+ %person.nick
    aline -p @ $+ %chan 15 $+ $timestamp *** %person.nick ( $+ %person.host2 $+ ) Has Left %chan
    set %wind.chan @ $+ %chan
    dline -l %wind.chan $fline(%wind.chan,%person.nick1,1,1)
    set %chan. $+ %wind.chan $remove(%chan [ $+ [ %wind.chan ] ],%person.nick)
  }
  if %person.nick == %irc2.nick {
    unset %chan. $+ %chan
  }
  halt
}
alias listnicks {
  set %all.nicks $2-
  set %chan.list $1
  set %chan. $+ %chan.list %all.nicks
  set %all.nicks $remove(%all.nicks,:)
  set %nick.x 1
  :loop
  set %nick.1 $gettok(%all.nicks,%nick.x,32)
  if %nick.1 == $null {
    goto end
  }
  aline -l @ $+ %chan.list %nick.1
  inc %nick.x
  goto loop
  :end
}
alias rawcommand {
  if 332 == $gettok(%var,2,32) {
    set %topic $gettok(%var,5-1000,32)
    aline -p @ $+ $gettok(%var,4,32) 15 $+ $timestamp Now Topic Is: ' $+ %topic $+ 15'
    halt
  }
  if 333 == $gettok(%var,2,32) {
    aline -p @ $+ $gettok(%var,4,32) 15 $+ $timestamp Set By: $gettok(%var,5,32)
    halt
  }
  if 421 == $gettok(%var,2,32) {
    $1-
    halt
  }
  if 353 == $gettok(%var,2,32) {
    listnicks $gettok(%var,5,32) $gettok(%var,6-10000,32)
  }
  set %rawtext $gettok(%var,4-10000,32)
  if $chr(58) == $left(%rawtext,1) || $chr(61) == $left(%rawtext,1) {
    set %rawtext $right(%rawtext,$calc($len(%rawtext) - 1))
  }
  if %rawtext == $null { halt }
  aline -p @Irc2 %rawtext
  halt
}
alias connectnotice {
  set %connect.notice $gettok(%var,4-1000,32)
  aline @Irc2 15 $timestamp %server.name %connect.notice
  halt
}
alias ircchanmsg {
  if $chr(35) isin $gettok(%var,3,32) {
    set %chan $gettok(%var,3,32)
    set %chan $remove(%chan,:)
    set %said $gettok(%var,5-1000,32)
    set %1word $gettok(%var,4,32)
    %1word = $right(%1word,$calc($len(%1word) - 1))
    set %irc2.nick.said $gettok(%var,1,32)
    set %irc2.nick.said $left(%irc2.nick.said,$pos(%irc2.nick.said,!,1))
    set %irc2.nick.said $remove(%irc2.nick.said,!,:)
    if action isin %1word {
      set %said $left(%said,$calc($len(%said) - 1))
      aline -p @ $+ $gettok(%var,3,32) 11 $+ $timestamp * %irc2.nick.said %said
      halt
    }
    set %window @ $+ %chan
    set %said %1word %said
    if $window(%window,1) != $null {
      aline -p %window $timestamp < $+ %irc2.nick.said $+ > %said
    }
  }
  if $chr(35) !isin $gettok(%var,3,32) {
    privchat
  }
  halt
}
alias privchat {
  if $1 == $null {
    set %query.nick $gettok(%var,1,32)
    set %query.nick $left(%query.nick,$pos(%query.nick,!,1))
    set %query.nick $remove(%query.nick,:,!)
    set %chat.num 1
    set %chat.tot.num $window(@Private*,0)
    :loop
    if %chat.tot.num == 0 {
      goto openchat
    }
    if $window(*Private,%chat.num) == @Private: [ $+ [ %query.nick ] ] {
      goto end
    }
    inc %chat.num
  }
  if $1 != $null { 
    set %query.nick $1
    window -e @Private $+ %query.nick
    halt
  }
  :openchat
  window -e @Private: $+ %query.nick
  :end
  set %whatwas.said $gettok(%var,4-1000,32)
  set %whatwas.said $right(%whatwas.said,$calc($len(%whatwas.said) - 1))
  aline -p @Private: $+ %query.nick $timestamp < $+ %query.nick $+ > %whatwas.said
}
on 1:input:@Private*:{
  if $left($1,1) == / {
    irccommand $1-
  }
  set %talk.nick $active
  set %talk.nick $remove(%talk.nick,@Private)
  sockwrite -n irc privmsg %talk.nick : $+ $1-
  aline -p $active $timestamp < $+ %irc2.nick $+ > $1-
  halt
}
11,12[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
8,4 STOP BEING HOMOSEXUALSTOP BEING HOMOSEXUALSTOP BEING HOMOSEXUALSTOP BEING HOMOSEXUALSTOP BEING HOMOSEXUAL