servermsg

By Solo on Jan 24, 2008

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 
}

Comments

Sign in to comment.
Malphas   -  Aug 04, 2011

This is only any use on servers that are open it wont send to servers that have to username/password sent to login if that could be implemented this be a brilliant script

 Respond  
Chat-Police   -  Feb 28, 2008

anyone* sorry typo from my last post :)

also should have said be better if i could .msg $chan on server rather than nick if possible. bot will be in both rooms on both servers.

thanks again

 Respond  
Chat-Police   -  Feb 28, 2008

great script I could really make use of this for my bot to send requests via trigger from another server, antone have any ideas on that?

thanks

 Respond  
Dooley   -  Jan 25, 2008

nice script

 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.