aIRC — File Browser

aIRCv0.8.69 / aIRCv0.8.69 / script / echo.mrc

echo.mrc — 23.31 KB — Download this file

;/**********************************************************************
; *
; * aIRC
; * Theme echos
; *
; **********************************************************************/
;
#_airctexthemes on
ON ^&*:SNOTICE:*:{
  haltdef
  if ($_snoticefilter($nick,$me,$1-) != $null) { _echo.snotice $ifmatch }
}
ON ^&*:WALLOPS:*:{
  haltdef
  %:echo = echo2 $colour(wallops) -eist
  %::text = $1-
  ^wallops
}
ON ^&*:KICK:#:{
  haltdef
  %::reason = $1-
  if ($knick == $me) {
    if ($chan ischan) {
      %:echo = echo2 $colour(kick) -t $chan
      %::flags = cy
      ^kick
      ^rejoin
    }
    %:echo = echo2 $colour(kick) -st
    %::flags = y
    ^kick
  }
  elseif ($chan ischan) {
    var %show = $_chanevent(kicks,$chan)
    if (%show == 2) { }
    elseif (%show) {
      %:echo = echo2 $colour(kick) -eist
      ^kick
    }
    else {
      %:echo = echo2 $colour(kick) -t $chan
      %::flags = c
      ^kick
    }
  }
}
ON ^&*:JOIN:#:{
  haltdef
  var %show = $_chanevent(joins,$chan),%short = $_minio(2,19),%addr = $_minio(0,2),%comment
  if (%show == 2) {  }
  elseif ($nick == $me) {
    if ($nick($chan,0) > 1) { %::flags = yr }
    else { %::flags = y }
    %:echo = echo2 $colour(join) -t $chan
    ^join
  }
  else {
    %::flags = _
    if (%short) { %::flags = %::flags $+ s }
    if (%addr) { %::flags = %::flags $+ a }
    if (%show) { %:echo = echo2 $colour(join) -est }
    else {
      %::flags = %::flags $+ c
      %:echo = echo2 $colour(join) -t $chan
    }
    ^join
  }
}
ON ^&*:PART:#:{
  haltdef
  var %part = $nick $address $chan $fulladdress $site $null $1-,%show = $_chanevent(parts,$chan),%short = $_minio(2,19),%addr = $_minio(0,2)
  if (%show == 2) { return }
  %::flags = _
  %::reason = $1-
  if (%short) { %::flags = %::flags $+ s }
  if (%addr) { %::flags = %::flags $+ a }
  if ($len($1-)) { %::flags = %::flags $+ p }
  if (%show) { %:echo = echo2 $colour(part) -est }
  else {
    %::flags = %::flags $+ c
    %:echo = echo2 $colour(part) -t $chan
  }
  ^part
}
ON ^&*:NICK:{
  haltdef
  if ($nick == $me) {
    %:echo = echo2 $colour(nick) -est
    %::flags = y
    %:echo $^nick
  }
  unset %:echo
  %::flags = c
  tokenize 32 $^nick
  var %i = $comchan($newnick,0),%chan
  while (%i) {
    %chan = $comchan($newnick,%i)
    if ($_not($_chanevent(nicks,%chan))) { echo2 $colour(nick) -t %chan $1- }
    dec %i
  }
  if ($query($newnick)) { echo2 $colour(nick) -t $newnick $1- }
}
ON ^&*:INVITE:#:{
  haltdef
  if ($_minio(3,26)) && (@* !iswm $active) && (Status window != $active) { %:echo = echo2 $colour(invite) -at }
  else { %:echo = echo2 $colour(invite) -est }
  ^invite
}
ON ^&*:USERMODE:{
  haltdef
  %:echo = echo2 $colour(mode) -est
  %::modes = $1-
  ^usermode
}
ON ^&*:RAWMODE:#:{
  haltdef
  var %show = $_chanevent(modes,$chan)
  if (%show == 2) {  }
  else {
    %::modes = $1-
    if (%show) { %:echo = echo2 $colour(mode) -est }
    else { %:echo = echo2 $colour(mode) -t $chan }
    ^mode
  }
}
ON ^&*:TOPIC:#:{
  haltdef
  var %show = $_chanevent(topics,$chan)
  if (%show == 2) { return }
  %::flags = _
  %::topic = $1-
  if ($1- == $null) && ($len($1-) == 0) { %::flags = u }
  if (%show) { %:echo = echo2 $colour(topic) -est }
  else {
    %::flags = %::flags $+ c
    %:echo = echo2 $colour(topic) -t $chan
  }
  ^topic
}
ON ^&*:QUIT:{
  haltdef
  var %i,%short = $_minio(2,19),%show,%showstatus = 0,%chan
  if (%short) { %::flags = cs }
  else { %::flags = c }
  unset %:echo
  %::reason = $1-
  %chan = $^quit
  %i = $comchan($nick,0)
  while (%i) {
    %show = $_chanevent(quits,$comchan($nick,%i))
    if ($_not(%show)) || (%show == 2) { echo2 $colour(quit) -t $comchan($nick,%i) %chan }
    if (%show isin 1-2) { %showstatus = 1 }
    dec %i
  }
  unset %::flags
  if (%showstatus) {
    %:echo = echo2 $colour(quit) -est
    %:echo $^quit
  }
  if ($query($nick)) {
    %:echo = echo2 $colour(quit) -t $nick
    %:echo $^quit
  }
}
ON &^*:TEXT:*:#:{
  var %chan
  %::flags = _
  if ($target == $chan)  { %chan = $chan }
  elseif (@* iswm $target) {
    %chan = $right($target,-1)
    %::flags = %::flags $+ o
  }
  if (%chan) {
    haltdef
    if ($len($1-) == 0) { %::flags = %::flags $+ n }
    if ($_minio(2,30)) { %::flags = %::flags $+ p }
    %::flags = %::flags $+ $_chanickopvoice($nick,%chan)
    if (%chan ischan) {
      %:echo = echo2 $colour(text) -bflti %chan
      %::flags = %::flags $+ c
      window -g %chan 2
    }
    else {
      %:echo = echo2 $colour(text) -bfelsti
      window -g "status window" 2
    }
    %::msg = $1-
    ^textchan
  }
}
ON &^*:TEXT:*:?:{

  ; $*.irc-hispano.org
  ; shit! a global message! damn spamming ircops!
  ; did you know that there are "sponsored" scripts in irc-hispano?
  ; some ircops send a global message every X minutes advertising these scripts
  ; nice network, but some ircops are $%&%&!
  if ($chr(36) isin $target) { return }

  haltdef

  if ($len($1-)) { %::flags = _ }
  else { %::flags = n }
  %::msg = $1-
  if ($query($nick)) {
    %::flags = %::flags $+ q
    %:echo = echo2 $colour(text) -bflti $nick
    window -g $nick 2
  }
  elseif ($_minio(0,22)) {
    if ($window(message window) == $null) {
      dqwindow open
      window -n "Message Window"
    }
    %::flags = %::flags $+ d
    %:echo = echo2 $colour(text) -bfdlti
    window -g "Message Window" 2
  }
  else {
    %::flags = %::flags $+ a
    var %w = $_actwin(bflti)
    %:echo = echo2 $colour(text) %w
    if (a !isin %w) { window -g "Status Window" 2 }
  }
  ^textuser
}
ON &^*:NOTICE:*:#:{
  var %chan,%echo,%act = $_minio(5,13),%noticeactiveecho
  %::flags = _
  if ($target == $chan)  { %chan = $chan }
  elseif (@* iswm $target) {
    %chan = $right($target,-1)
    %::flags = %::flags $+ o
  }
  if (%chan) {
    haltdef
    %::msg = $1-
    if ($len($1-) == 0) { %::flags = %::flags $+ n }
    if ($_minio(2,30)) { %::flags = %::flags $+ p }
    %::flags = %::flags $+ $_chanickopvoice($nick,%chan)
  if ($_echonoticewin != $null) { %echo = $ifmatch }
else {
    if (%chan ischan) { var %echo = echo2 $colour(notice) -ti %chan,%noticeactiveecho = $iif($active == %chan,0,1) }
    elseif (%act) { %noticeactiveecho = 1 }
    else { %echo = echo2 $colour(notice) -esti }
    if (%act) && (%noticeactiveecho) && ($active != %chan) {
      %:echo = echo2 $colour(notice) $_actwin(ti)
      ^noticechan
    }
}
    %:echo = %echo
    ^noticechan
  }
}
ON &^*:NOTICE:*:?:{
  var %chan,%echo,%string,%act = $_minio(5,13),%noticeactiveecho
  if ($len($1-)) { %::flags = _ }
  else { %::flags = n }
  haltdef
  %:echo = echo2 $colour(notice) -esti
  %::msg = $1-
  if ($len($1-) == 0) { %::flags = %::flags $+ n }
  %string = $^noticeuser
  if ($1 == dcc) {
    echo2 $colour(notice) -esti %string
    return
  }
  if ($_echonoticewin != $null) {
    $ifmatch %string
    return
  }
  if ($_getsetup(script,_servicenoticesinactive)) && ($istok(%.netbots,$nick,32)) {
    echo2 $colour(notice) $_actwin(ti) %string
    return
  }
  var %i = 1
  while ($comchan($nick,%i) != $null) {
    echo2 $colour(notice) -ti $ifmatch %string
    inc %i
  }
  if (%i > 1) {
    if (%act) && ($nick !ison $active) { echo2 $colour(notice) $_actwin(ti) %string }
  }
  else {
    if (%act) && (@* !iswm $active) && ($active != Status Window) { echo2 $colour(notice) $_actwin(ti) %string }
    echo2 $colour(notice) -esti %string
  }
}
alias -l _echonoticewin {
  var %win = @Notices,%open = $window(%win)
  if (%open) || ($_getsetup(script,_@ctcp)) {
    if (%open == $null) {
      window -k %win $_window.conf(%win)
      _window.font.reset %win %win
      window -a %win
    }
    window -g %win
    return echo2 $colour(notice) -ti %win
  }
}
ON &^*:ACTION:*:#:{
  var %chan
  %::flags = _
  if ($target == $chan)  { %chan = $chan }
  elseif (@* iswm $target) {
    %chan = $right($target,-1)
    %::flags = %::flags $+ o
  }
  if (%chan) {
    haltdef
    %::msg = $1-
    if ($len($1-) == 0) { %::flags = %::flags $+ n }
    if ($_minio(2,30)) { %::flags = %::flags $+ p }
    %::flags = %::flags $+ $_chanickopvoice($nick,%chan)
    if (%chan ischan) {
      %:echo = echo2 $colour(action) -bflti %chan
      %::flags = %::flags $+ c
      window -g %chan 2
    }
    else {
      %:echo = echo2 $colour(action) -bfelsti
      window -g "status window" 2
    }
    ^actionchan
  }
}
ON &^*:ACTION:*:?:{
  var %chan
  if ($len($1-) == 0) { %::flags = n }
  else { %::flags = _ }
  haltdef
  %::msg = $1-
  if ($query($nick)) {
    %::flags = %::flags $+ q
    %:echo = echo2 $colour(action) -bflti $nick
    window -g $nick 2
  }
  elseif ($_minio(0,22)) {
    if ($window(message window) == $null) {
      dqwindow open
      window -n "Message Window"
    }
    %::flags = %::flags $+ d
    %:echo = echo2 $colour(action) -bfdlti
    window -g "Message Window" 2
  }
  else {
    %::flags = %::flags $+ a
    var %w = $_actwin(bflti)
    %:echo = echo2 $colour(action) %w
    if (a !isin %w) { window -g "Status Window" 2 }
  }
  ^actionuser
}
CTCP *:*:*:{
  if ($1 == dcc) { return }
  if (%+ctcp.reply) && (%+ctcp.replymsg != $null) { _puthelp $nick & _qctcpreply $nick %+ctcp.replymsg }
  if (%+ctcp.show) && ($halted == $false) {
    var %chan,%act = $_minio(4,19)
    %::flags = _
    %::ctcp = $upper($1)
    %::parms = $2-
    if (%+ctcp.hideparms) { %::flags = %::flags $+ h }
    if ($target == $chan)  { %chan = $chan }
    elseif (@* iswm $target) {
      %chan = $right($target,-1)
      %::flags = %::flags $+ o
    }
    if (%chan) {
      if ($_minio(2,30)) { %::flags = %::flags $+ p }
      %::flags = %::flags $+ $_chanickopvoice($nick,%chan)
      if ($_echoctcpwin != $null) { %:echo = $ifmatch }
      elseif (%chan ischan) { %:echo = echo2 $colour(ctcp) -ti %chan }
      elseif (%act) { %:echo = echo.a $colour(ctcp) }
      else { %:echo = echo2 $colour(ctcp) -eist }
      ^ctcpchan
    }
    else {
      if ($_echoctcpwin != $null) { %:echo = $ifmatch }
      elseif (%act) { %:echo = echo.a $colour(ctcp) }
      else { %:echo = echo2 $colour(ctcp) -eist }
      ^ctcpuser
    }
  }
  halt
}
ON &*:CTCPREPLY:*:{
  if ($1 == ping) && ($2 isnum) && ($2 < $ticks) && ($2 > 0) {
    var %p = $calc(($ticks - $2) / 1000)
    if (%p < 1) { %p = $_duration(%p,3) }
    elseif (%p < 60) { %p = $_duration(%p,2) }
    else { %p = $_duration(%p,0) }
    _echoctcpreply PING %p
  }
  else { _echoctcpreply $1- }
  halt
}
alias _echoctcpreply {
  if ($_echoctcpwin != $null) { %:echo = $ifmatch }
  elseif ($_minio(4,19)) { %:echo = echo.a $colour(ctcp) }
  else { %:echo = echo2 $colour(ctcp) -eist }
  %::ctcp = $upper($1)
  %::parms = $2-
  %::flags = _
  ^ctcpreply
}
alias -l _echoctcpwin {
  var %win = @CTCP,%open = $window(%win)
  if (%open) || ($_getsetup(script,_@ctcp)) {
    if (%open == $null) {
      window -k %win $_window.conf(%win)
      _window.font.reset %win %win
      window -a %win
    }
    window -g %win
    return echo2 $colour(ctcp) -ti %win
  }
}
alias _chanickopvoice {
  var %flags = _
  if ($1 isowner $2) { %flags = %flags $+ . }
  if ($1 isop $2) { %flags = %flags $+ @ }
  if ($1 isvo $2) { %flags = %flags $+ + }
  return %flags
}
ON &*:DNS:{
  haltdef
  var %echo = lechol.a $colour(action) $^***
  if ($raddress != $null) {
    var %t = $iif($iaddress != $raddress,$iaddress,$naddress)
    if (%t == $raddress) { var %t }
    if ($nick != $null) { %echo Resolved $nick $iif(%t,$^p(%t)) to $raddress }
    else { %echo Resolved %t to $raddress }
  }
  elseif ($nick != $null) && ($iaddress == $null) && ($raddress == $null) { %echo /dns: no such user $nick }
  else { %echo Unable to resolve $iif($iaddress,$iaddress,$naddress) }
}
raw &1:*:{ %:echo = echo.s | ^001 $1- | halt }
raw &2:*:{ %:echo = echo.s | ^002 $1- | halt }
raw &3:*:{ %:echo = echo.s | ^003 $1- | halt }
raw &4:*:{ %:echo = echo.s | ^004 $1- | halt }
raw &5:*:{ %:echo = echo.s | ^005 $1- | halt }
raw &6:*:{ halt }
raw &7:*:{ halt }
raw &8:*:{ halt }
raw &221:*:{
  %:echo = $echo.raw
  ^221 $1-
  halt
}
raw &250:*:{
  %:echo = $echo.raw
  ^250 $1-
  halt
}
raw 251:*:{
  unset %=lusers.*
  %=lusers.251 = $2-
  %=lusers.norm = $4
  if ($8 == services) { %=lusers.services = $7 }
  else { %=lusers.invisible = $7 }
  %=lusers.servers = $10
  halt
}
raw 252:*:{
  %=lusers.252 = $2-
  %=lusers.ircops = $2
  halt
}
raw 253:*:{
  %=lusers.253 = $2-
  %=lusers.unknown = $2
  halt
}
raw 254:*:{
  %=lusers.254 = $2-
  %=lusers.chans = $2
  halt
}
raw 255:*:{
  %=lusers.255 = $2-
  %=lusers.localusers = $4
  %=lusers.totalusers = %=lusers.norm + %=lusers.invisible
  if ($6 isnum) && ($9 isnum) {
    if (%=lusers.services == $null) { %=lusers.services = $6 }
    if (%=lusers.servers == $null) { %=lusers.servers = $9 }
  }
  elseif ($7 isnum) && (%=lusers.servers == $null) { %=lusers.servers = $7 }
  %=lusers.server = $nick
  _lusers.varsnull2zero
  if ($halted == $false) {
    %:echo = $echo.rawstatus
    ^lusers
  }
  unset %=lusers.*
  halt
}
raw 256:*:{
  unset %=admin.*
  %=admin.server = $5
  %=admin.256 = $1-
  halt
}
raw 257:*:{ %=admin.info1 = $2- | halt }
raw 258:*:{ %=admin.info2 = $2- | halt }
raw 259:*:{
  %=admin.info3 = $2-
  if ($halted == $false) {
    %:echo = $echo.rawstatus
    ^admin
  }
  unset %=admin.*
  halt
}

raw &263:*:{ error.raw $1- | halt }
raw &265:*:{
  %:echo = $echo.rawstatus
  %::currlocalusers = $5
  %::maxlocalusers = $7
  ^265 $1-
  halt
}
raw &266:*:{
  %:echo = $echo.rawstatus
  %::currglobalusersmax = $5
  %::maxglobalusers = $7
  ^266 $1-
  halt
}
raw 271:*:{
  inc %=silencelist.t
  if ($halted == $false) {
    %=silencelist.nick = $2
    %=silencelist.mask = $3
    %:echo = $echo.rawstatus
    if (%=silencelist.t == 1) { ^silencelist.start $1- }
    ^silencelist $1-
  }
  halt
}
raw 272:*:{
  if ($halted == $false) {
    %=silencelist.nick = $1
    %:echo = $echo.rawstatus
    if (%=silencelist.t == $null) {
      %:echo = $echo.raw
      ^silencelist.nosilences $1-
    }
    else { ^silencelist.end $1- }
  }
  unset %=silencelist.*
  halt
}
raw &298:*:{
  %:echo = lechol.s $colour(info)
  ^298 $1-
  halt
}
raw 301:*:{
  if (%=whois.nick != $null) { %=whois.away = $3- }
  elseif (%=whowas.nick != $null) { %=whowas.away = $3- }
  elseif ($halted == $false) {
    if ($2 != $me) {
      var %var = %~~awayecho. [ $+ [ $2 ] ]
      if (%var == $null) || (%var != $3-) {
        set -u300 %~~awayecho. $+ $2 $3-
        %:echo = lechol.w $colour(info) $nick
        %::server = $nick
        %::nick = $2
        %::reason = $3-
        ^away $1-
      }
    }
  }
  halt
}
raw &302:*:{
  var %i = 1,%a,%addr,%cops,%away
  while ($gettok($2-,%i,32) != $null) {
    %a = $gettok($2-,%i,32)
    %cops = $iif(* isin %a,1,0)
    %away = $iif($left($gettok(%a,2,61),1) == -,1,0)
    %addr = $remove($gettok(%a,1,61),*) $+ ! $+ $right($gettok(%a,2,61),$calc($len($gettok(%a,2,61)) - 1))
    echo.userhost $gettok(%addr,1,33) %addr %away %cops
    inc %i
  }
  halt
}
raw 305:*:{
  if ($halted == $false) {
    %=305.reason       = %c.away.reason
    %=305.time         = %c.away.time
    %=305.awayflags    = %c.away.flags
    %=305.newpages     = %.pager.new
    %=305.totalpages   = %.pager.all
    %=305.eventslogged = $lines($_awaylog.file)
    %:echo = lechol.a $colour(info)
    ^305
    unset %=305.*
  }
  halt
}
raw 306:*:{
  if ($halted == $false) {
    %=306.reason       = %c.away.reason
    %=306.time         = %c.away.time
    %=306.awayflags    = %c.away.flags
    %=306.newpages     = %.pager.new
    %=306.totalpages   = %.pager.all
    %=306.eventslogged = $lines($_awaylog.file)
    %:echo = lechol.a $colour(info)
    ^306
    unset %=306.*
  }
  halt
}
raw 311:*:{
  %:echo = $echo.whois
  if ($halted == $false) && (%=whois.nick != $null) { ^whois }
  unset %=whois.*
  %=whois.nick = $2
  %=whois.ident = $3
  %=whois.host = $4
  %=whois.name = $6-
  %=whois.fulladdress = $2 $+ ! $+ $3 $+ @ $+ $4
  %=whois.fromserver = $nick
  %=whois.addy = $gettok(%=whois.fulladdress,2,33)
  %=whois.from = $_country(%=whois.fulladdress)
  %=whois.from2 = $_country(%=whois.fulladdress,1)
  if ($istok($_getclonimmunes,$4,32) == $false) && ($_getclones(%=whois.fulladdress,*,15,$2) != $null) { %=whois.clones = $ifmatch }
  if ($2 != $me) {
    if ($_finduser(%=whois.fulladdress) != $null) {
      %=whois.handle = $ifmatch
      if ($_access(%=whois.handle) != $null) { %=whois.flags = $ifmatch }
    }
  }
  %INWHOIS = 1
  halt
}
raw 312:*:{
  if (%=whois.nick != $null) {
    %=whois.server = $3
    %=whois.servinf = $4-
  }
  else {
    %=whowas.server = $3
    %=whowas.signoff = $4-
  }
  halt
}
raw 313:*:{
  %=whois.ircop = $2-
  halt
}
raw 314:*:{
  %:echo = $echo.whois
  if ($halted == $false) && (%=whowas.nick != $null) { ^whowas }
  unset %=whowas.*
  %=whowas.nick = $2
  %=whowas.ident = $3
  %=whowas.host = $4
  %=whowas.name = $6-
  %=whowas.fulladdress = $2 $+ ! $+ $3 $+ @ $+ $4
  %=whowas.fromserver = $nick
  %=whowas.addy = $gettok(%=whowas.fulladdress,2,33)
  if ($_country(%=whowas.fulladdress) != $null) { %=whowas.from = $ifmatch }
  if ($_access(%=whowas.fulladdress) != $null) { %=whowas.flags = $ifmatch }
  if ($istok($_getclonimmunes,$4,32) == $false) && ($_getclones(%=whowas.fulladdress,*,15,$2) != $null) { %=whowas.clones = $ifmatch }
  halt
}
raw 315:*:{
  if ($halted == $false) {
    %:echo = $echo.who
    %=whototal.t = $iif(%=whototal.t,%=whototal.t,0)
    ^who.end $1-
  }
  unset %=whototal.t
  halt
}
raw 317:*:{
  %=whois.idle = $3
  %=whois.login = $4
  %=whois.317 = $1-
  halt
}
raw 318:*:{
  unset %INWHOIS
  %:echo = $echo.whois
  if ($halted == $false) && (%=whois.nick != $null) { ^whois }
  unset %=whois.*
  halt
}
raw 319:*:{
  %:echo = $echo.whois
  if (%=whois.yataecho1 == $null) && ($_not($halted)) { ^whois.start }
  %=whois.yataecho1 = 1
  %=whois.channels = $3-
  %:echo = $echo.whois
  if (%=whois.channels != $null) && ($_not($halted)) { ^whois.channels }
  halt
}
raw &324:*:{
  %:echo = echo.w $colour(mode) $2
  ^324 $1-
  halt
}
raw &328:*:{
  %:echo = echo.w $colour(info) $2
  ^328 $1-
  halt
}
raw &329:*:{
  %:echo = echo.w $colour(info) $2
  ^329 $1-
  halt
}
raw &331:*:{
  %:echo =  echo.w $colour(topic) $2
  ^331 $1-
  halt
}
raw &332:*:{
  %=echo = echo.w $colour(topic) $2
  ^332 $1-
  halt
}
raw &333:*:{
  %=echo = echo.w $colour(topic) $2
  ^333 $1-
  halt
}
raw &341:*:{
  if ($_ischan($3)) {
    %=341.chan = $3
    %=341.nick = $2
  }
  else {
    %=341.nick = $2
    %=341.chan = $3
  }
  %:echo = lechol.s $colour(invite)
  ^341 $1-
  unset %=341.*
  halt
}
raw &351:*:{ 
  %:echo = lechol.s $colour(info)
  %=351.version = $2
  %=351.server  = $3
  %=351.info    = $4-
  ^351 $1-
  unset %=351.*
  halt
}
raw 352:*:{
  inc %=whototal.t
  if ($halted == $false) {
    %:echo = $echo.who
    if (%=whototal.t == 1) { ^who.start $1- }
    ^who $1-
  }
  halt
}
raw 353:*:{
  if (%=names.mm == $null) {
    %=names.t = 0
    %=names.@ = 0
    %=names.+ = 0
  }
  inc %=names.mm
  inc %=names.t $numtok($4-,32)
  inc %=names.@ $count($4-,@)
  inc %=names.+ $count($4-,+)
  if ($halted == $false) {
    var %chan = $3
    if (%chan ischan) && ($_synchtime.get(0,%chan) == $null) && ($_rchini(_shownames,%chan)) {
      halt
    }
    %=names.chan = %chan
    %:echo = echo.w $colour(info) %chan
    %=names.names = $4-
    if (%=names.mm == 1) { ^names.start $1- }
    ^names $1-
  }
  halt
}
raw 366:*:{
  var %synch = 0,%chan = $2
  %=names.n = $calc(%=names.t - %=names.@ - %=names.+)
  if (%chan ischan) && ($_synchtime.get(0,%chan) == $null) {
    _synchtime.calc 0 %chan
    %synch = 1
  }
  .timer -o 1 0 unset %=names.*
  if ($halted == $false) {
    %=names.chan = %chan
    %=names.chantopic = $chan(%chan).topic
    %=names.showsynch = %synch
    %=names.synchtime = $_synchtime.get(0,%chan)
    %:echo = echo.w $colour(info) %chan
    if (%=names.t) {
      var %tmp = $_rchini(_shownames,%chan)
      if (%synch == 0) { %tmp = 0 }
      if (%tmp == 2) {  }
      elseif (%tmp) { ^names.resume $1- }
      else { ^names.end $1- }
    }
    elseif (%=names.mm) { ^names.invisible $1- }
    else { ^names.nousers $1- }
    if (%synch) { ^joinsynchtime $1- }
  }
  unset %=names.*
  halt
}
raw 367:*:{
  inc %=banlist.t
  if ($halted == $false) {
    %:echo = echo.w $colour(info) $2
    %=banlist.chan = $2
    if (%=banlist.t == 1) { ^banlist.start }
    ^banlist $1-
  }
  halt
}
raw 368:*:{
  if ($halted == $false) {
    %:echo = echo.w $colour(info) $2
    %=banlist.chan = $2
    if (%=banlist.t == $null) { ^banlist.nobans }
    else { ^banlist.end }
  }
  unset %=banlist.*
  halt
}
raw 369:*:{
  %:echo = $echo.whois
  if ($halted == $false) && (%=whowas.nick != $null) { ^whowas }
  unset %=whowas.*
  halt
}
raw 371:*:{
  inc %=info.t
  if ($halted == $false) {
    %=info.server = $nick
    %:echo = $echo.rawstatus
    if (%=info.t == 1) { ^info.start $1- }
    ^info $1-
  }
  halt
}
raw 373:*:{
  unset %=info.*
  halt
}
raw 374:*:{
  if ($halted == $false) {
    %=info.server = $nick
    %:echo = $echo.rawstatus
    ^info.end $1-
  }
  unset %=info.*
  halt
}
raw &375:*:{
  linesep -s
  if ($_minio(1,11)) { info.s $3 - Ignoring MOTD }
  else {
    linesep -s
    echo2 $colour(info) -st $^*** $3 - Message of the Day
  }
  halt
}
raw &376:*:{
  if ($_not($_minio(1,11))) {
    echo2 $colour(info) -st $^*** End of MOTD
    linesep -s
  }
  halt
}
raw &381:*:{
  %:echo = lechol.s $colour(info)
  ^381 $1-
  halt
}
raw &382:*:{
  %:echo = lechol.s $colour(info)
  ^382 $1-
  halt
}
raw &391:*:{
  %:echo = lechol.s $colour(info)
  ^391 $1-
  halt
}
raw *:*:{
  if (4* iswm $numeric) || (5* iswm $numeric) || (9* iswm $numeric) {
    if ($halted == $false) {
      if (%=whois.nick != $null) {
        %:echo = $echo.whois
        ^whois
      }
      if (%=whowas.nick != $null) {
        %:echo = $echo.whois
        ^whowas
      }
      error.raw $1-
    }
    unset %=whois.* %=whowas.*
    halt
  }
  elseif (%INWHOIS) && ($numeric isnum) {
    _whoisextra.add $numeric $2-
    halt
  }
  else {
    var %alias = ^ $+ $numeric
    if ($isalias(%alias)) {
      %:echo = $echo.raw
      %alias $1-
      halt
    }
  }
}
#_airctexthemes end
alias _whoisextra.get {
  var %var = =whois.extra. $+ $1,%line = % [ $+ [ %var ] ]
  if (r* iswm $2) { return $gettok(%line,1,32) }
  return $gettok(%line,2-,32)
}
alias _whoisextra.add {
  var %i = 1
  while ($_whoisextra.get(%i,raw)) { inc %i }
  set %=whois.extra. $+ %i $1-
}
alias _lusers.varsnull2zero {
  if (%=lusers.norm == $null)       { %=lusers.norm = 0 }
  if (%=lusers.services == $null)   { %=lusers.services = 0 }
  if (%=lusers.invisible == $null)  { %=lusers.invisible = 0 }
  if (%=lusers.servers == $null)    { %=lusers.servers = 0 }
  if (%=lusers.ircops == $null)     { %=lusers.ircops = 0 }
  if (%=lusers.unknown == $null)    { %=lusers.unknown = 0 }
  if (%=lusers.chans == $null)      { %=lusers.chans = 0 }
  if (%=lusers.localusers == $null) { %=lusers.localusers = 0 }
  if (%=lusers.totalusers == $null) { %=lusers.totalusers = 0 }
}