set suppress_server_motd on
set novice on
set auto_reconnect off

assign INTERFACE_ACTIVE no

on disconnect * {
  lsend DISCONNECT This interface does not support disconnection messages.
}

on signoff * {
  lsend QUIT $0-
}

on leave * {
  lsend PART $0-
}

on nickname * {
  if ( [$0] == N ) {
    lsend NEWNICK $1
  } {
    lsend NICK $0 $userhost() $1
  }
}

on join * {
  lsend JOIN $0 $2 $1
}

on action * {
  lsend ACTION $0 $userhost() $1-
}

on public * {
  lsend PUBLIC $0 $userhost() $1-
}

on public_msg * {
  lsend PUBLIC $0 $userhost() $1-
}

on public_notice * {
  lsend NOTICE $0 $userhost() $1-
}

on public_other * {
  lsend PUBLIC $0 $userhost() $1-
}

on msg * {
  lsend MSG $0 $userhost() $1-
}

on msg_group * {
  lsend MSG $0 $userhost() $2-
}

on kick * {
  lsend KICK $1 $0 $2-
}

on invite * {
  lsend INVITE $0 $userhost() $1
}

on 353 * {
  lsend NAMES $2-
}

on ctcp_reply * {
  lsend CTCPREPLY $0 $userhost() $1-
}

on notice * {
  lsend NOTICE $0 $userhost() $1-
}

on dcc_request "% CHAT *" {
  lsend DCCCHATREQ $0 $userhost()
}

on dcc_connect "% CHAT *" {
  lsend DCCCHATOPEN $0
}

on dcc_lost * {
  if ([$0] == INTERFACE_FD) {
    assign INTERFACE_ACTIVE no
    create_link
  } else {
    lsend DCCCHATCLOSE $0
  }
}

on dcc_chat * {
  lsend DCCMSG $0-
}

on dcc_raw "% % c *" {
  assign INTERFACE_ACTIVE no
  create_link
}

on dcc_raw "% % e *" {
  assign INTERFACE_ACTIVE yes
  assign INTERFACE_FD $0
  assign INTERFACE_HOST $1
  lsend LACHESIS MESSAGE INTERFACE
}

on dcc_raw "% % d *" {
  switch ( $3 ) {
    ( DO ) {
      $4-
    }
    ( USERHOST ) {
      userhost $4 -cmd lsend USERHOST $4 $$3 $$4
    }
    ( SENDNICK ) {
      lsend $N
    }
    ( SENDNAME ) {
      lsend $Y
    }
    ( SENDUH ) {
      lsend $X
    }
  }
}

alias create_link {
  $connect(localhost 5013)
}

alias lsend {
  if ([$INTERFACE_ACTIVE] == [yes] ) {
    dcc raw $INTERFACE_FD $INTERFACE_HOST $0-
    echo > $0-
  }
}

create_link
