This allows a user to send a message to a user on another server without opening a whole new connection and returns an error if the users is not on specified network. It now supports multiple servers.
URL http://www.mircscripts.org/comments.php?cid=3923
;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
}