EOS Theme Engine (Full)

By Aurora801 on Feb 19, 2013

Engage`OS (eos) Theme Engine v1.0 with code included from KTE, as it's what inspired me, and I will be migrating the code form KTE to eos build soon, but for now it has KTE aswell. too many lines of code to change for the night.

; eos Theme Engine by Aurora/Kraken
alias eos { return 9EngageOS`7 }
alias -l engageaway {
  if ($1 = -n) {
    if ($2 == on) { echo -agt $eos Nickname Change on Away Enabled. }
    elseif ($2 == off) { unset %e::anick | echo -agt $eos Nickname Change on Away Disabled. }
    else { set %e::anick $2 | echo -agt $eos Away Nickname set to - %e::anick }
  }
  elseif ($1 = -b) { 
    scid -a away
    scid -a amsg $eos 4[15Back4][14 $awaymsg 4][14 Away For - $duration($awaytime) 4]
    if (%e::nick) { scid -a nick %e::nick | unset %e::nick }
  }
  elseif ($1 == -a) {
    set %e::nick $me
    scid -a away $2-
    scid -a amsg $eos 4[15Away4][14 $2- 4][14 Time is now - $time(hh:nn:ss tt) 4]
    if (%e::anick) { scid -a nick %e::anick }
  }
}
alias Awayos {
  if ($1 == -n) { engageaway -n $2 }
  elseif ($1 !== -n) && ($1) { engageaway -a $1- }
  elseif (!$1) { engageaway -b }
  else { echo -agt $eos Error! }
}
alias ostest {
  window -a @EngageOS-Tab
  clear @EngageOS-Tab
  if ($exists(EngageOS-tab.txt)) {
    var %eos::line = $lines(EngageOS-tab.txt)
    while (%eos::line) {
      tokenize 32 $read(EngageOS-Tab.ini,%eos::line)
      aline @EngageOS-Tab $eos $+(:: ,$chr(9),$1,:) $2-
      dec %eos::line
    }
  }
  else {
    aline @EngageOS-Tab $+(:: ,$chr(9),DragonSphear:,$chr(9),hello)
    aline @EngageOS-Tab $+(:: ,$chr(9),Room Enter,$chr(9),<->!!Entering Ciao (TacoFet / jgrill@not.your.average.vhost))
    aline @EngageOS-Tab $+(:: ,$chr(9),TacoFet:,$chr(9),hi bob)
    aline @EngageOS-Tab $+(:: ,$chr(9),Whiplash,$chr(9),hi all)
    aline @EngageOS-Tab $+(:: ,$chr(9),TacoFet:,$chr(9),hi whiplash)
    aline @EngageOS-Tab $+(:: ,$chr(9),Room Part,$chr(9),<->!!!Leaving Caio (DragonSphear / dsch@Fear.The.Sphear) [Later all])
    aline @EngageOS-Tab $+(:: ,$chr(9),Ezio:,$chr(9),Well that was interesting.)
  }
}

alias eostab.add { 
  echo -agt $eos $+(:: ,$chr(9),Added eostab instance,$chr(9),$1-)
  write EngageOS-tab.txt $1-
}

; now all the fun stuff is ended, and we begin the theme engine.
;Aliases. DO NOT CHANGE THESE. Color can be modified via the variables.
alias -l _eos.return { return $+(,$eos.col1,::) $chr(9) $+(,$eos.col2,$1) $chr(9) $+(,$eos.col3,$2) $iif($3,$chr(9) $+(,$eos.col4,$3)) }
alias -l eos.col1 { return 9 }
alias -l eos.col2 { return 15 }
alias -l eos.col3 { return 9 }
alias -l eos.col4 { return 14 }
alias -l _eos.cturn { return $+(:: ,$chr(9),$1,$chr(9),$2,$chr(9),$chr(124)) }
alias _eostest { echo -agt $_eos.return($1,$2-) }

;Event Time
on ^&*:JOIN:*: {
  haltdef
  if ($nick == $me) { echo -t $chan $_eos.return(>> You Have Entered,$remove($chan,$chr(35))) | halt }
  echo -t $chan $_eos.return(>> Room Join >>, $remove($chan,$chr(35)),$nick ( $+ $address $+ ))
}
on ^&*:PART:*: {
  haltdef
  echo -t $chan $_eos.return(<< Room Part <<,$remove($chan,$chr(35)),$nick ( $+ $address $+ ))
}
on ^&*:QUIT: {
  haltdef
  var %i $comchan($nick,0)
  while (%i) {
    echo -t $comchan($nick,%i) $_eos.return(<-> User Quit,$nick ( $+ $address $+ ),$1-)
    dec %i
  }
}
on ^&*:NICK: {
  haltdef
  var %eosn $comchan($newnick,0)
  while (%eosn) {
    echo -t $comchan($newnick,%eosn) $_eos.return(// Nick Change,$nick is now,$newnick)
    dec %eosn
  }
}
on ^&*:USERMODE: {
  haltdef
  echo -st $_eos.return(Usermode Change,$1-,New usermodes: $usermode)
}
on ^&*:RAWMODE:#: {
  haltdef
  echo -t $chan $_eos.return(Mode change, [ $1 ] / [ $2- ], by $nick)
}
on ^&*:TOPIC:#: {
  haltdef
  echo -t $chan $_eos.return(Topic, [ $remove($chan,$chr(35)) ] / change by [ $nick ],$1-)
}
on ^&*:KICK:#: {
  haltdef
  if ($knick == $me) { echo -t $chan $_eos.return(<-> KICK,$nick kicked you [ $chan ], $1-) | halt }
  echo -t $chan $_eos.return(<-> KICK, user $knick was kicked by $nick [ $chan ], $1-)
}
on ^&*:INVITE:#: {
  haltdef
  echo -t 8Invite12:00 $nick 15has invited you to join 7[00 $chan 7]
}
on ^&*:ERROR:*: {
  haltdef
  echo -st $_eos.return(/? ERROR, $1-)
}
on ^&*:WALLOPS:*: {
  haltdef
  echo -at $_eos.return(//wallops, [ $nick ],$1-)
}
on ^&*:SNOTICE:*: {
  haltdef
  echo -at $_snotice($server,$1-)
}
alias -l _snotice { return 0:4[15snotice4][15 $+ $1 $+ 4]14 $1  }
on &*:INPUT:*:{
  if ($0) && ((/* !iswm $1) || ($ctrlenter)) && (($active ischan) || ($query($active)) || (=* iswm $active)) && ($window($active, 0) = 1) {
    say $1- | halt
  }
}
alias nicktabcheck { echo -agt 9[0N15ick0T15ab9]15 Test9: $nicktab($active,$1-) }
alias nicktab {
  unset %nt:tok %nt:chan %nt:check %nt:return
  var %nt:return
  var %nt:chan $1
  tokenize 32 $2
  if (! isin $left($1,1)) || (. isin $left($1,1)) { return $1- | halt }
  var %nt:tok $gettok($1-,0,32)
  ; echo -ag 9[0N15ick0T15ab9]15 Channel: %nt:chan / token length: %nt:tok / Tokenized: $1-
  while (%nt:tok) {
    var %nt:check $gettok($1-,%nt:tok,32)
    ; echo -ag 9[0N15ick0T15ab9]15 Checking for %nt:tok / %nt:check / in $1-
    if (%nt:check ison %nt:chan) {
      if (! isin $right(%nt:check,1)) || (. isin $right(%nt:check,1)) || (, isin $right(%nt:check,1)) || (? isin $right(%nt:check,1)) { var %nt:checkend $right(%nt:check,1) | var %nt:check $remove(%nt:check,%nt:checkend) | var %nt:return  9,1[0,1-9,1[15,01 $+ %nt:check $+ 9,1]0,1-9,1] $+ %nt:checkend %nt:return }
      else { var %nt:return  9,1[0,1-9,1[15,01 $+ %nt:check $+ 9,1]0,1-9,1] %nt:return }
    }
    elseif (%nt:check isnum) { var %nt:return $iif($group(#usecolor) == On,09 $+ %nt:check $+ ,%nt:check) %nt:return }
    else { var %nt:return $iif($group(#usecolor) == On,$tk:ret(%nt:check),%nt:check) %nt:return }
    ;echo -ag 9[0N15ick0T15ab9]15 Decreasing nt:tok, checking next token.
    dec %nt:tok
  }
  return %nt:return
}
#usecolor off
alias -l tk:ret {
  set %co1 $iif($prop,$prop,04)
  set %co2 07
  var %x 1
  while (%x <= $gettok($1-,0,32)) {
    var %text1 $mid($gettok($1-, [ [ %x ] ],32),1,1)
    var %text [ [ %text ] ] $replace($mid($gettok($1-, [ [ %x ] ],32),1,1),[ [ %text1 ] ], $+(,[ %co1 ],,[ [ %text1 ] ],,[ %co2 ],)) $+ $mid($gettok($1-, [ [ %x ] ],32),2,$calc($len($gettok($1-, [ [ %x ] ],32) - 1)))
    var %text $replace(%text,.,9.,!,9!,$chr(44),9 $+ $chr(44),$chr(35),9 $+ $chr(35),$chr(34),9 $+ $chr(34),$chr(36),9 $+ $chr(36),$chr(37),9 $+ $chr(37),$chr(38),9 $+ $chr(38),$chr(39),9 $+ $chr(39),$chr(40),9 $+ $chr(40),$chr(41),9 $+ $chr(41),$chr(42),9 $+ $chr(42),$chr(43),9 $+ $chr(43),$chr(47),9 $+ $chr(47),$chr(58),9 $+ $chr(58),$chr(59), $+ $chr(59),$chr(60),9 $+ $chr(60),$chr(61),9 $+ $chr(61),$chr(62),9 $+ $chr(62),$chr(64),9 $+ $chr(64),$chr(91),9 $+ $chr(91),$chr(92),9 $+ $chr(92),$chr(93),9 $+ $chr(93),$chr(94),9 $+ $chr(94))
    inc %x
  }
  if ($isid) { return %Text }
}
#usecolor end
alias say {
  if ($isid) { return }
  if ($status == disconnected) || (!$0) || (($active !ischan) && (!$query($active))) && (=* !iswm $active) {
    .timer.kte 1 0 !say $1- | .timer.kte -e | halt
  }

  .!msg $active $nicktab($active,$1-)
  set -u1 %:echo echo $color(own) -ati2
  set -nu1 %::text $nicktab($active,$1-) | set -u1 %::target $active | set -u1 %::nick $me
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  if ($active ischan) {
    set -u1 %::chan $active
    if ($nick($active, $me).pnick != $me) { set -u1 %::cmode $left($ifmatch, 1) }
    set -u1 %::cnick $nick($active, $me).color
    %:echo 7( $+ $modecol(%::me,%::chan) $+ 7)15 %::text
  }
  else {
    set -u1 %::cnick $cnick($me).color
    %:echo 9( $+ $modecol(%::me,%::chan) $+ 9)15 %::text $+  %:comments
  }
  unset %:echo %::parentext %::target %::nick %::address %::chan %::cnick %::cmode %::me %::server %::port %::pre %::c? %::text
}
alias query {
  if ($isid) { return }
  if (!$0) { .timer.kte 1 0 !query | .timer.kte -e | halt }
  !query $1
  if ($0 > 1) {
    if (!$server) { .timer.kte 1 0 !query $1- | .timer.kte -e | halt }
    msg $1-
  }
}
alias msg {
  if ($isid) { return }
  if ($0 < 2) || ((=* !iswm $1) && ($status == disconnected)) || (!$_ischat($1)) {
    .timer.kte 1 0 !msg $1- | .timer.kte -e | halt
  }
  .!msg $1-
  if (!$show) { return }
  set -nu1 %::text $2- | set -u1 %::target $1 | set -u1 %::nick $me
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  ; %::nick = $me. This is a matter of logic.
  ; Use <target> in your script, not <nick>, to refer to the recipient of the message.
  if ($1 ischan) || ($query($1)) || (=* iswm $1) {
    set -u1 %:echo echo $color(own) -ti2 $1
    if ($1 ischan) {
      if ($nick($1, $me).pnick != $me) { set -u1 %::cmode $left($ifmatch, 1) }
      set -u1 %::cnick $nick($1, $me).color
      %:echo 13 $+ $cfusion.chanmode(%::me,%::chan) $+ 7(00 $+ %::me $+ 7)15 %::text
    }
    else { %:echo 9(00 $+ %::me $+ 9)15 %::text $+  %:comments }
  }
  else {
    set -u1 %:echo echo $color(own) -ti2 $+ $_active
    %:echo  13> 11msg12 [ $+ 13 $+ $iif($ial(%::target),$ial(%::target).nick,%::target) $+ 12 $+ ]:15 %::text %::comments | haltdef
  }
  unset %:echo %::parentext %::target %::nick %::me %::server %::port %::pre %::c? %::chan %::cmode %::cnick %::text
}
alias amsg {
  if ($isid) { return }
  if ($status == disconnected) || (!$0) || (!$chan(0)) { .timer.kte 1 0 !amsg $1- | .timer.kte -e | halt }
  if (!$show) { return }
  set -nu1 %::text $1- | set -u1 %::nick $me
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  var %i = $chan(0)
  while (%i) {
    set -u1 %::chan $chan(%i)
    set -u1 %::target %::chan
    set -u1 %:echo echo $color(own) -ti2 %::chan
    if ($nick($chan(%i), $me).pnick != $me) { set -u1 %::cmode $left($ifmatch, 1) }
    set -u1 %::cnick $nick(%::chan, $me).color
    if ($chan(%::chan) !== #idlerpg) { !.msg %::chan 15:7[15amsg7]14 %::text | %:echo 9(00 $+ $modecol(%::me,%::chan) $+ 9)15 15:7[15amsg7]14 %::text }
    dec %i
  }
  unset %:echo %::parentext %::nick %::cnick %::cmode %::chan %::target %::me %::server %::port %::pre %::c? %::text
}

alias me {
  if ($isid) { return }
  if (!$server) || (!$0) || (($active !ischan) && (!$query($active))) && (=* !iswm $active) {
    .timer.kte 1 0 !me $1- | .timer.kte -e | halt
  }
  .!describe $active $1-
  if (!$show) { return }
  set -u1 %:echo echo $color(action) -ati2
  set -nu1 %::text $1- | set -u1 %::target $active | set -u1 %::nick $me
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  if ($active ischan) {
    set -u1 %::chan $active
    if ($nick($active, $me).pnick != $me) { set -u1 %::cmode $left($ifmatch, 1) }
    set -u1 %::cnick $nick($active, $me).color
  }
  %:echo 4(1-14A15ction1-4)0-4(1- $+ $+(14,$left(%::nick,1),15,$right(%::nick,$calc($len(%::nick) - 1))) $+ 1-4)14 %::text $+  %:comments
  unset %:echo %::parentext %::target %::nick %::chan %::cnick %::cmode %::me %::server %::port %::pre %::c? %::text
}
alias action {
  if ($isid) { return }
  if (!$server) || (!$0) || (($active !ischan) && (!$query($active))) && (=* !iswm $active) {
    .timer.kte 1 0 !action $1- | .timer.kte -e | halt
  }
  me $1-
}
alias describe {
  if ($isid) { return }
  if (!$server) || ($0 < 2) || (!$_ischat($1)) {
    .timer.kte 1 0 !describe $1- | .timer.kte -e | halt
  }
  .!describe $1-
  if (!$show) { return }
  set -nu1 %::text $2- | set -u1 %::target $1 | set -u1 %::nick $1
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  if ($1 ischan) || ($query($1)) || (=* iswm $1) {
    set -u1 %:echo echo $color(action) -ti2 $1
    if ($1 ischan) {
      set -u1 %::chan $1
      if ($nick($1, $me).pnick != $me) { set -u1 %::cmode $left($ifmatch, 1) }
      set -u1 %::cnick $nick($1, $me).color
      %:echo 4(1-14A15ction1-4)0-4(1- $+ $+(14,$left(%::nick,1),15,$right(%::nick,$calc($len(%::nick) - 1))) $+ 1-4)14 %::text $+  %:comments
    }
    else { %:echo 4(1-14A15ction1-4)0-4(1- $+ $+(14,$left(%::nick,1),15,$right(%::nick,$calc($len(%::nick) - 1))) $+ 1-4)14 %::text $+  %:comments }
  }
  else { set -u1 %:echo echo $color(action) -ti2 $+ $_active | %:echo -> 4(1-14A15ction1-4/1-14 $+ $+($left(%::target,1),15,$right(%::target,$calc($len(%::target) - 1))) $+ 1-4)0-4(1- $+ $+(14,$left(%::nick,1),15,$right(%::nick,$calc($len(%::nick) - 1))) $+ 1-4)14 %::text $+  %:comments }
  unset %:echo %::parentext %::target %::chan %::cmode %::cnick %::nick %::me %::server %::port %::pre %::c? %::text
}

alias ame {
  if ($isid) { return }
  if (!$server) || (!$0) || (!$chan(0)) { .timer.kte 1 0 !ame $1- | .timer.kte -e | halt }
  !.ame $1-
  if (!$show) { return }
  set -nu1 %::text $1- | set -u1 %::nick $me
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  var %i = $chan(0)
  while (%i) {
    set -u1 %::chan $chan(%i)
    set -u1 %::target %::chan
    set -u1 %:echo echo $color(action) -ti2 %::chan
    if ($nick(%::chan, $me).pnick != $me) { set -u1 %::cmode $left($ifmatch, 1) }
    set -u1 %::cnick $nick(%::chan, $me).color
    %:echo 4(1-14A15ction1-4)0-4(1- $+ $+(14,$left(%::nick,1),15,$right(%::nick,$calc($len(%::nick) - 1))) $+ 1-4)14 %::text $+  %:comments
    dec %i
  }
  unset %:echo %::parentext %::target %::chan %::cnick %::cmode %::nick %::me %::server %::port %::pre %::c? %::text
}

alias notice {
  if ($isid) { return }
  if (!$server) || ($0 < 2) { .timer.kte 1 0 !notice $1- | .timer.kte -e | halt }
  .!notice $1-
  if (!$show) { return }
  set -nu1 %::text $2- | set -u1 %::target $1 | set -u1 %::nick $1
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  set -u1 %:echo echo $color(notice) -ti2 $+ $_active
  if ($1 ischan) { set -u1 %::chan $1 | %:echo  7> 15:7[15notice7][14 %::chan $+ 7]:15 %::text %::comments $+  %:comments }
  else { %:echo  7> 15:7[15notice7][14 $iif($ial(%::target),$ial(%::target).nick,%::target) 7]:15 %::text %::comments }
  unset %:echo %::parentext %::target %::nick %::chan %::me %::server %::port %::pre %::c? %::text
}
on &^*:TEXT:*:#:{
  if ($chan !ischan) { return }
  set -u1 %:echo echo $color(normal) -t $chan
  set -nu1 %::text $strip($1-, o)
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  set -nu1 %::nick $nick
  set -nu1 %::address $address
  if ($nick($chan, $nick).pnick != $nick) { set -nu1 %::cmode $left($ifmatch, 1) } | set -nu1 %::cnick $nick($chan, $nick).color
  set -nu1 %::chan $chan
  set -nu1 %::target $target
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  %:echo 9( $+ $modecol(%::nick,%::chan) 9)15 %::text | haltdef
  unset %:echo %::nick %::address %::target %::parentext %::me %::server %::port %::pre %::c? %::chan %::cmode %::cnick %::text
}
on &^*:ACTION:*:#: {
  haltdef
  echo -t $chan 4(1-14A15ction1-4)0-4(1- $+ $+(14,$left($nick,1),15,$right($nick,$calc($len($nick) - 1))) $+ 1-4)14 $1-
}
on &^*:NOTICE:*:#: {
  if ($chan !ischan) { return }
  set -u1 %:echo echo $color(notice) -mti2 $chan
  set -nu1 %::text $strip($1-, o)
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  set -nu1 %::nick $nick
  set -nu1 %::address $address
  if ($nick($chan, $nick).pnick != $nick) { set -nu1 %::cmode $left($ifmatch, 1) } | set -nu1 %::cnick $nick($chan, $nick).color
  set -nu1 %::chan $chan
  set -nu1 %::target $target
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  if (%::nick == $me) { %:echo 15:7[14welcome7][14 $+ %::chan $+ 7]14 %::text  | haltdef }
  elseif (%::nick == Perpetual) && ($1 == SERVERALERT) { halt }
  else { %:echo  7-(14 $+ %::nick $+ 4!15 $+ %::target $+ 7)-15 %::text $+  %:comments | haltdef }
  unset %:echo %::nick %::address %::target %::parentext %::me %::server %::port %::pre %::c? %::chan %::cmode %::cnick %::text
}
;;the next bit is a large portion of KTE, which I like the CTCP/Raw info part, and I'm lazy, so CREDIT IS GIVEN!!!
ctcp ^&*:*:?:kte_onctcp $1-
ctcp ^&*:*:#:kte_onctcp $1-
alias -l kte_onctcp {
  if ($1 == VERSION) || (($target == $me) && ($1 == DCC)) { return }
  elseif ($1 == SERVERALERT) { serveralert.bar $2- | halt }
  elseif ($1 == RGUN223) { rgun.ctcp $2- }
  var %ch = 0, %txt, %rpl
  if ($target != $me) { %ch = 1 }
  if ($target ischan) {
    var %tgt = $gettok($hget(Kte_Events, $chan), 6, 44)
    if (%tgt = 2) { set -u1 %:echo echo $color(ctcp) -sti2 }
    else { set -u1 %:echo echo $color(ctcp) -ti2 $target }
  }
  else {
    set -u1 %:echo echo $color(ctcp) -ti2 $+ $iif((@* !iswm $active) && ($_isactive) && ($hget(Kte_Events, Active.CTCPs)), a, s)
  }
  set -u1 %::ctcp $1
  set -n %txt $2-
  if ($1 == PING) { %txt = | set -n %rpl $1- }
  elseif ($1- == TIME) { set -n %rpl $1 $fulldate }
  elseif ($1- == FINGER) { set -n %rpl $1 $($fullname, 2) (-) Idle $idle second $+ $iif(($idle != 1), s) }
  set -nu1 %::text $strip(%txt, o)
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  set -nu1 %::nick $nick
  set -nu1 %::address $address
  if ($nick($chan, $nick).pnick != $nick) { set -nu1 %::cmode $left($ifmatch, 1) } | set -nu1 %::cnick $nick($chan, $nick).color
  set -nu1 %::chan $chan
  set -nu1 %::target $target
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  if (%ch) { %:echo 14.15.15. 12Ctcp12: 13 $+ $upper(%::ctcp) $+ $upper($iif(%::text,$chr(32) $+ %::text)) 15requested by12 [00 $+ %::nick $+ 7]15 to 00 $+ %::chan $+  %:comments }
  else { %:echo 14.15.15. 12Ctcp12: 13 $+ $upper(%::ctcp) $+ $upper($iif(%::text,$chr(32) $+ %::text)) 15requested by12 [00 $+ %::nick $+ 7]15 to 00you %:comments }
  if (%rpl) { !.ctcpreply $nick %rpl }
  unset %:echo %::nick %::address %::target %::parentext %::me %::server %::port %::pre %::c? %::chan %::cmode %::cnick %::text
  haltdef
}

alias ctcp {
  if ($isid) { return }
  if ($0 < 2) || (!$server) || ($2 == DCC) { .timer.kte 1 0 !ctcp $1- | .timer.kte -e | return }
  .!ctcp $1-
  if (!$show) { return }
  set -u1 %::target $1
  set -u1 %::ctcp $upper($2)
  set -nu1 %::text $3-
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  set -u1 %:echo echo $color(ctcp) -ti2 $+ $_active
  if ($1 ischan) { set -u1 %::chan $1 | %:echo  13> 11ctcp12 [13 $+ %::chan $+ 12]:15 %::ctcp %::text %::comments $+  %:comments }
  else { set -u1 %::nick $1 | %:echo  13> 11ctcp12 [ $+ 13 $+ $iif($ial(%::target),$ial(%::target).nick,%::target) $+ 12 $+ ]:15 %::ctcp %::text %::comments }
  unset %:echo %::parentext %::nick %::chan %::ctcp %::target %::me %::server %::port %::pre %::c? %::text
}

on &*:CTCPREPLY:*:{
  var %rpl | set -n %rpl $2-
  if ($1 == PING) && ($2- isnum 1- $+ $ctime) { %rpl = $duration($calc($ctime - $2)) }
  set -u1 %:echo echo $color(ctcp) -ti2 $+ $_active
  set -u1 %::ctcp $upper($1)
  set -nu1 %::text $strip(%rpl, o)
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  set -nu1 %::nick $nick
  set -nu1 %::address $address
  set -nu1 %::target $target
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  %:echo 14.15.15. 12Reply12: 13 $+ $upper(%::ctcp) 15from12 [00 $+ %::nick $+ 12] $+ $iif(%::target != $me,15 to 00 $+ %::nick) $+ $iif(%::text,14:15 %::text) %:comments | haltdef
  unset %:echo %::nick %::address %::target %::parentext %::ctcp %::me %::server %::port %::pre %::c? %::text
}

alias ctcpreply {
  if ($isid) { return }
  if ($0 < 2) || (!$server) { .timer.kte 1 0 !ctcpreply $1- | .timer.kte -e | return }
  .!ctcpreply $1-
  if (!$show) { return }
  set -u1 %:echo echo $color(ctcp) -ti2 $+ $_active
  set -u1 %::target $1
  set -u1 %::ctcp $upper($2)
  set -nu1 %::text $3-
  set -u1 %::nick $1
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if (* iswm %::text) { set -nu1 %::parentext 14(15 $+ %::text $+ 14) }
  %:echo  13> 11reply12 [13 $+ %::nick $+ 12]:15 %::ctcp %::parentext %::comments $+  %:comments
  unset %:echo %::parentext %::ctcp %::target %::nick %::me %::server %::port %::pre %::c? %::text
}

alias dns {
  if ($isid) { return }
  if (!$0) || (($1 == -h) && ($0 = 1)) || ((. !isin $1) && ($1 != -h) && (!$server)) {
    .timer.kte 1 0 !dns $1- | .timer.kte -e | return
  }
  .!dns $1-
  if (!$show) { return }
  var %h = $1, %f
  if ($istok(-h -c, $1, 32)) { %f = $1 | %h = $2 }
  if (%f != -h) && (. !isin %h) && ($address(%h, 5)) { %h = $gettok($ifmatch, 2, 64) }
  set -u1 %:echo echo $color(info) -ti2 $+ $iif((@* iswm $active) && ($_isactive), s, a)
  set -u1 %::address %h
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  %:echo 14.15.15. Looking up %::nick $+ %::address $+  %:comments
  unset %:echo %::address %::me %::server %::port %::pre %::c?
}

; ----------------------------------------------------------------------
; Numeric (raw) events  ------------------------------------------------
; ----------------------------------------------------------------------
raw *:*: {
  var %n = $right(00 $+ $numeric, 3)
  if (%n == 322) { return }
  elseif (%n == 372) { return }
  eraw %n $2-
}

alias -l eraw {
  var %n = $1
  tokenize 32 $2-
  if ((%n !== 372) || (%n !== 322)) { haltdef }
  if (%n == 372) { return }
  elseif (%n == 001) { echo -sg 15:4[15Server is4]15 $remove($4-,$gettok($4-,$calc($gettok($4-,0,32) - 1),321),32))  }
  elseif (%n == 002) { set %e::server $remove($4,$right($4,1)) }
  elseif (%n == 003) { set %e::created $4- }
  elseif (%n == 004) { echo -sg 15:4[15Server info4]14 server ( %e::server ) is using $2  | echo -sg 15:4[15Created4]14 %e::created  | echo -sg 15:4[15chanmodes4]14 $4  | echo -sg 15:4[15usermodes4]14 $3  }
  elseif (%n == 005) { echo -sg 15:4[15Info4]14 $1- }
  elseif (%n == 251) { echo -sg 15:4[15users4]14 $3-7  | echo -sg 15:4[15network4]14 this network consists of $9-  }
  elseif (%n == 252) { echo -sg 15:4[15operators4]14 there are $1-  }
  elseif (%n == 254) { echo -sg 15:4[15channels4]14 $1-  }
  elseif (%n == 255) { halt }
  elseif (%n == 265) { echo -sg 15:4[15users4][15local4]14 $3-  }
  elseif (%n == 266) { echo -sg 15:4[15users4][15global4]14 $3-  }
  elseif (%n == 375) { echo -sg 15:4[15Message of the Day4] }
  elseif (%n == 376) { echo -sg 15:4[15Message of the Day - end4] }
  elseif (%n == 008) { echo -sg 15:4[15SNOMASK4]14 your SNOMASK is currently $4  }
  elseif (%n == 332) { echo -gt $1 15:4[15topic4][14 $1 4]14 $2-  }
  elseif (%n == 333) { echo -gt $1 7topic by4: 7[14 $2 7] 4/7/8/7/4/ 7Topic Set at4: 7[14 $asctime($3) 7] }
  elseif (%n == 324) { echo -gt $1 7Modes on4: 7[14 $1 7][14 $2- 7] }
  elseif (%n == 381) { echo -agt 15:4[15oper4]14 $1- }
  elseif (%n == 353) { halt }
  elseif (%n == 366) { halt }
  elseif (%n == 329) { halt }
  elseif (%n == 352) { halt }
  elseif (%n == 315) { halt }
  elseif (%n == 302) {
    var %i = 2, %t = $0, %p, %addr, %pos
    while (%i <= %t) {
      %p = $ [ $+ [ %i ] ]
      %addr = $gettok(%p, 2, 61)
      %pos = $pos(%addr, $left($remove(%addr, +, -), 1), 1)
      set -u1 %::nick $gettok(%p, 1, 61)
      set -u1 %::address $mid(%addr, %pos)
      set -u1 %::value $left(%addr, $calc(%pos - 1))
      if ($right(%::nick, 1) == *) { %::nick = $left(%::nick, -1) | %::value = %::value $+ * }
      ._userhost $1-
      inc %i
    }
  }
  elseif (%n == 421) { echo -agt 15:4[15error4]14 unknown command - $lower($1)  }
  elseif (%n == 006) { rootmap $1- }
  elseif (%n == 603) { halt }
  elseif (%n == 604) { halt }
  elseif (%n == 605) { halt }
  elseif (%n == 606) { halt }
  elseif (%n == 600) { halt }
  elseif (%n == 223) { echo -agt 15:4[15G:Line4]14 $1- }
  elseif (%n == 216) { echo -agt $+(15:4[15,$iif($1 == Z,Z:Line,$iif($1 == E,Ban Exception,$iif($1 == K,K:Line))),4]14 $2-) }
  elseif (%n == 243) { echo -agt 15:4[15O:Line4]14 $1- }
  elseif (%n == 219) { echo -agt 15:4[15end of $1 stats4] }
  elseif ($isalias($+(kte::raw.,%n))) { $+(kte::raw.,%n) $1- }
  else { echo -sg 15:4[15Raw4][14 %n 4]14 $1- }
}

alias -l kte::Echo %:echo 14.15.15. rawr :: 00 $+ %::text $+  %:comments
alias -l kte::EchoTarget %:echo 14.15.15. echo :: 00 $+ %::text $+  %:comments
alias -l kte::Error %:echo 14.15.15. 7Error12:15 %::text $+  %:comments
alias -l kte::Raw.303 %:echo 14.15.15. %::text are online %:comments
alias -l kte::raw.406 %:echo 14.15.15. 11Error12:15 there was no such nick12: 00 $+ %::nick $+  %::comments $+  %:comments
alias -l kte::raw.375 { set -ul %:echo echo -st | %:echo  7:4>00 Message of the day14: %:comments }
alias -l kte::raw.255 { set -ul %:echo echo -st | cfusion.raw.255 }
alias -l kte::raw.391 %:echo 14.15.15. 7Time12:15 $asctime($ctime(%::text)) $+  %:comments
alias -l kte::Raw.332 { set %:echo echo -st | cfusion.topic }
alias -l kte::raw.372 { set -ul %:echo echo -st | %:echo  7:4>  15 %::text $+  %:comments }
alias -l kte::raw.252 { set -ul %:echo echo -st | %:echo  7:4>  00 Operators 4:15 %::value operators online %:comments }
alias -l kte::raw.333 { set -ul %:echo echo -st | cfusion.endtopic }
alias -l kte::raw.329 { set -ul %:echo echo -st | %:echo 14.15.15. 7Created4:15 $asctime(%::text) $+  %:comments }
alias -l kte::raw.265 { set -ul %:echo echo -st | %:echo  4:11>00   Local users 4:15 %::users $+ 14,00 Max14:15 %::value 7[15 $+ $cfusion.perc(%::users,%::value) full7] }
alias -l kte::raw.001
alias -l kte::raw.441 %:echo 14.15.15. 7Error4:00 %::nick $+ 15 is not on4: 00 $+ %::chan $+  %::comments $+  %:comments
alias -l kte::raw.401 %:echo 14.15.15. 7Error4:15 no such nick4: 00 $+ %::nick $+  %::comments $+  %:comments
alias -l kte::raw.266 { set -ul %:echo echo -st | cfusion.lusersend }
alias -l kte::raw.250 { set -ul %:echo echo -st | %:echo  7:4>  00 Highest     4:15 %::value is most clients connected %:comments }
alias -l kte::raw.002 { set -ul %:echo echo -st | %:echo  7:4>00 Server Statistics | %:echo  7:4>   00 Server    14:15 %::server 14[15 $+ %::value $+ 14] }
alias -l kte::raw.442 %:echo 14.15.15. 7Error4:00 you7(15 $+ %::nick $+ 7)15 are not on4: 00 $+ %::chan $+  %::comments $+  %:comments
alias -l kte::raw.315
alias -l kte::raw.402 %:echo 14.15.15. 7Error4:15 no such nick/server12: 00 $+ %::nick $+  %::comments $+  %:comments
alias -l kte::raw.003 { set -ul %:echo echo -st | %:echo  7:4>  00 Created   14:15 %::value $+  %:comments }
alias -l kte::Raw.251 { set -ul %:echo echo -st | cfusion.lusersstart }
alias -l kte::raw.443 %:echo 14.15.15. 7Error4:00 %::nick $+ 15 is already on12: 00 $+ %::chan $+  %::comments $+  %:comments
alias -l kte::raw.324 { 
  ; %:echo 14.15.15. 7Modes4:15 on00 %::chan $+ 12: [15 $+ %::modes $+ 7] %::comments $+  %:comments
  return $null
}
alias -l kte::raw.403 %:echo 14.15.15. 7Error4:15 no such channel4: 00 $+ %::chan $+  %::comments $+  %:comments
alias -l kte::raw.376
alias -l kte::raw.004 { set -ul %:echo echo -st | %:echo  7:4>  00 UserModes 12:15 $gettok(%::text,3,32) $+  | %:echo  7:4>  00 ChanModes 12:15 $gettok(%::text,4,32) $+  }
alias -l kte::Raw.301 { set -ul %:echo echo -st | %:echo 14.15.15. %::nick is away: %::text $+  %:comments }
alias -l kte::raw.432 %:echo 14.15.15. 7Error4:15 invalid nickname4: 00 $+ %::nick $+  %::comments $+  %:comments
alias -l kte::raw.404 %:echo 14.15.15. 7Error4:15 cannot send to channel4: 00 $+ %::chan $+  %::comments $+  %:comments
alias -l kte::raw.341 %:echo 14.15.15. 8Invite15:00 %::nick 15was invited to join4: 7[15 %::chan 7] %::comments $+  %:comments
alias -l kte::raw.005 { set -ul %:echo echo -st | %:echo  7:4>  00 Protocols 14:15 $replace(%::text,are supported by this server,,are available on this server,) }
alias -l kte::Raw.302 %:echo 14.15.15. 7Userhost4:00 %::nick 7(15 $+ %::address $+ 7) %::comments $+  %:comments
alias -l kte::raw.433 %:echo 14.15.15. 7Error4:15 nickname is already in use4: 00 $+ %::nick $+  %::comments $+  %:comments
alias -l kte::raw.421 %:echo 14.15.15. 7Error4:15 invalid command14:00 $lower(%::value) $+  %:comments
alias -l kte::raw.254 { set -up %:echo echo -st | %:echo  7:4>  00 Channels  4:15 %::value channels formed %:comments }
alias -l modecol {
  if ($1 isop $2) { return 12 $+ $1 }
  elseif ($1 isvoice $2) { return 9 $+ $1 }
  elseif ($1 ishop $2) { return 8 $+ $1 }
  else { return 15 $+ $1 }
}
alias -l rootmap {
  var %toks = $gettok($1-,0,32)
  var %numeric = $gettok($1-,%toks,32)
  var %m::n = $iif(%numeric isnum,$v1,[None])
  var %map = $left($1-,$calc($len($1-) - $len(%numeric)))
  if (%numeric !isnum) { var %map = %map %numeric }
  echo -sgt   7:4>   7Root Map4:15 %map 7Numeric ID4:15 %m::n
}
alias theme.text {
  if (!$var(%:echo)) { return $false }
  set -nu1 %::me $me | set -nu1 %::server $server | set -nu1 %::port $port
  set -nu1 %::pre 14.15.15.
  set -nu1 %::c1 00 | set -nu1 %::c2 11 | set -nu1 %::c3 13 | set -nu1 %::c4 12
  if ($isalias(kte:: $+ $1)) { kte:: $+ $1 | return $true }
  elseif (* iswm $hget(Kte_Theme, $1)) {
    var %ln
    set -n %ln $hget(Kte_Theme, $1)
    if ($gettok(%ln, 1, 32) == !Script) { set -n %ln $deltok(%ln, 1, 32) }
    else { set -n %ln % $+ :echo $dll($scriptdir $+ kte.dll, MTSPrecompile, %ln) $!+  % $+ :comments }
    .timerkte_theme 1 0 %ln | .timerkte_theme -e | return $true
  }
  return $false
}
alias kte_void

alias -l _entered {
  var %def = $readini($mircini, events, default), %set
  if (!%def) { %def = 0,0,0,0,0,0,0,0 }
  %set = $readini($mircini, events, $1)
  if (!%set) { %set = 0,0,0,0,0,0,0,0 }
  while ($findtok(%set, 0, 1, 44)) { %set = $puttok(%set, $calc($gettok(%def, $ifmatch, 44) + 1), $ifmatch, 44) }
  hadd Kte_Events $1 %set
}
alias -l _left {
  set -u0 %kte_chan $1
  var %i = $scon(0)
  while (%i) { if ($scon(%i) != $cid) && ($scon(%i).kte_haschan) { return } | dec %i }
  hdel Kte_Events $1
}
alias -l kte_haschan return $chan(%kte_chan)

alias -l _isactive if ($cid == $activecid) { return 1 } | return 0
alias -l _active if ($cid == $activecid) { return a } | return s
alias -l _ischat {
  var %n = $mid($1, 2)
  if (=* !iswm $1) { return 1 }
  if (=* iswm $1) && (($chat(%n)) || ($fserv(%n))) { return 1 }
  return 0
}

Comments

Sign in to comment.
Aurora801   -  Feb 19, 2013

Screenshot of the eos theme engine at work

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.