All pastes #941834 Raw Edit

Stuff

public text v1 · immutable
·published 2008-03-13 23:50 UTC
rendered paste body
;written by Weaver
;Use: enables a mesage to be sent to another server without opeing a new connection.
;syntax /servermsg <server> <user> <msg>
;example: /servermsg irc.dalnet.com username Hi, do you wanna come and join me on irc.server.com?
;multi server capable
;report bugs to: email irccompanionATgmail.com
alias servermsg {
  if ($numtok($1-,32) < 3) { echo $color(info) -a * /servermsg: insufficient parameters, use <server> <user> <msg>  | return }
  if $sock($+(servermsg,_,$1)) { echo $color(info) -a * /servermsg: error one connection is already open for $+($1,.) | halt }
  set -e $+(%,server_msg,_,$1) $3-
  var %ntwork = $+($1,_,$2),%socket = $+(servermsg,_,$1)
  sockopen %socket $gettok(%ntwork,1,95) 6667
  sockmark $+(servermsg,_,$1) $+($1,_,$2,)
  echo $color(info) -a * /servermsg: opening connection to $gettok(%ntwork,1,95) 
}
on *:sockopen:servermsg*:{
  if ($sockerr) { echo $color(info) -a  * /servermsg: error connecting to $gettok($sock($sockname).mark,1,95) | close_servermsg $sockname | return }
  sockwrite -n $sockname $upper(nick) sm $+ $right($ticks,4)
  sockwrite -n $sockname $upper(user) servermsg . . servermsg
}
on *:sockread:servermsg*: {
  var %tmpdata
  sockread %tmpdata
  tokenize 32 %tmpdata
  if ($4- == :) { echo $color(info) -a * /servermsg: could not find $gettok($sock($sockname).mark,2,95) on $gettok($sock($sockname).mark,1,95) | close_servermsg $sockname }
  if ($1 == ping) { smsockwrite $upper(pong) $2 } 
  if ($2 == 376) { smsockwrite $upper(ison) $gettok($sock($sockname).mark,2,95) }
  if ($2 == 505) { echo $color(info) -a  * /servermsg: Unreged users cannot message $gettok($sock($sockname).mark,2,95) at the present time. | close_servermsg $sockname } 
  if ($2 == 433) { echo $color(info) -a * /servermsg: Nick already in use, error connecting. | close_servermsg $sockname }
  if ($2 == 401) && (no such user isin $5-) { echo -a $color(info) * /servermsg:  no such user $gettok($sock($sockname).mark,2,95) on $gettok($sock($sockname).mark,1,95 ) | close_servermsg $sockname }
  if ($2 == 465 ) { echo $color(info) -a * /servermsg: * You were akilled on $gettok($sock($sockname).mark,1,95) | close_servermsg $sockname }
  if ($2 == 303) && ($4- != :) { 
    var %msg = $gettok($sock($sockname).mark,1,95)
    smsockwrite $upper(privmsg) $gettok($sock($sockname).mark,2,95) : $+ $($+(%,server_msg_,$gettok($sock($sockname).mark,1,95)),2)
    echo $color(info) -a * /servermsg: message succesfully sent to $gettok($sock($sockname).mark,2,95) on $+($gettok($sock($sockname).mark,1,95),.)
    close_servermsg $sockname
  }
}
on 1:sockclose:servermsg:{ unset %server_msg }
alias -l smsockwrite {
  sockwrite -n $sockname $1- 
}
alias -l close_servermsg {
  unset $+(%,server_msg_ ,$gettok($sock($1).mark,1,95))
  sockclose $1 
}