Bot message system

By uncled1023 on Feb 16, 2010

The Bot message system receives a message that a nick inputs, saves it, and waits for the next time it sees the nick that is receiving the message, and sends it to them.

All you have to do is paste this in the remote section of your bot, or create a new file and load it.

User Commands:
!message EX: !message joe Hey, what's up? <-- will send a message to joe when it sees him talk or login.
!delete EX: !delete joe <-- will delete the message you have waiting for joe.

Image
Image

Each nick may only send 1 message per nick at a time. So a nick can not spam another nick with messages.

More updates will be coming with more features.

Next Release Additions:
~ View all pending messages
~ Send to multiple people
~ View history of past messages

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;       Messenger System         ;
;     Created by Uncled1023      ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;

; %n3owner = bots owner 

on message:join:#: {
  var %messages 1
  msg $nick You have %message.count. [ $+ [ $nick ] ] messages waiting for you.
  while (%messages <= %message.count. [ $+ [ $nick ] ] ) { 
    var %nick_var $nick $+ %messages
    msg $nick %message.user. [ $+ [ %nick_var ] ] has left the following message for you: %message.user.msg. [ $+ [ %nick_var ] ]
    msg $nick If you would like to message %message.user. [ $+ [ %nick_var ] ] back, just type: !message %message.user. [ $+ [ %nick_var ] ] <your message here>
    unset %message.user. [ $+ [ %nick_var ] ]
    unset %message.user.msg. [ $+ [ %nick_var ] ]
    inc %messages 1 
  }
  ruser message $nick
  unset %message.count. [ $+ [ $nick ] ]
  if ( $nick == %n3owner ) {
    auser owner $nick
  }

}

on message:TEXT:*:#: {
  var %messages 1
  msg $nick You have %message.count. [ $+ [ $nick ] ] messages waiting for you.
  while (%messages <= %message.count. [ $+ [ $nick ] ] ) { 
    var %nick_var $nick $+ %messages
    msg $nick %message.user. [ $+ [ %nick_var ] ] has left the following message for you: %message.user.msg. [ $+ [ %nick_var ] ]
    msg $nick If you would like to message %message.user. [ $+ [ %nick_var ] ] back, just type: !message %message.user. [ $+ [ %nick_var ] ] <your message here>
    unset %message.user. [ $+ [ %nick_var ] ]
    unset %message.user.msg. [ $+ [ %nick_var ] ]
    inc %messages 1 
  }
  ruser message $nick
  unset %message.count. [ $+ [ $nick ] ]
  if ( $nick == %n3owner ) {
    auser owner $nick
  }
}

on *:TEXT:!message *:#: {
  var %nick $$2
  var %messages 1
  var %error 0
  if ( %nick == $me ) {
    msg $chan Why don't you just tell me here?
    inc %error 1
  }
  else {
    while (%messages <= %message.count. [ $+ [ %nick ] ] ) { 
      var %nick_var %nick $+ %messages
      if (%message.user. [ $+ [ %nick_var ] ] == $nick ) {
        msg $nick Sorry $nick , but you have already left the following message for this user: %message.user.msg. [ $+ [ %nick_var ] ]
        msg $nick To delete this message, type !delete %nick 
        msg $chan Sorry, but you have already sent this user a message.  To delete this message, type !delete %nick
        inc %error  1
      }
      inc %messages 1 
    }
  }
  if (%error == 0) {
    inc %message.count. [ $+ [ %nick ] ] 1
    var %new.message.count %message.count. [ $+ [ %nick ] ]
    var %nick_var %nick $+ %new.message.count
    set %message.user.msg. [ $+ [ %nick_var ] ] $3-
    set %message.user. [ $+ [ %nick_var ] ] $nick
    auser message %nick
    msg $chan I will give %nick your message as soon as i can.
  }
}

on *:TEXT:!message *:?: {
  var %nick $$2
  var %messages 1
  var %error 0
  if ( %nick == $me ) {
    msg $chan Why don't you just tell me here?
    inc %error 1
  }
  else {
    while (%messages <= %message.count. [ $+ [ %nick ] ] ) { 
      var %nick_var %nick $+ %messages
      if (%message.user. [ $+ [ %nick_var ] ] == $nick ) {
        msg $nick Sorry $nick , but you have already left the following message for this user: %message.user.msg. [ $+ [ %nick_var ] ]
        msg $nick To delete this message, type !delete %nick 
        inc %error  1
      }
      inc %messages 1 
    }
  }
  if (%error == 0) {
    inc %message.count. [ $+ [ %nick ] ] 1
    var %new.message.count %message.count. [ $+ [ %nick ] ]
    var %nick_var %nick $+ %new.message.count
    set %message.user.msg. [ $+ [ %nick_var ] ] $3-
    set %message.user. [ $+ [ %nick_var ] ] $nick
    auser message %nick
    msg $nick I will give %nick your message as soon as i can.
  }
}

on *:TEXT:!delete *:#: {
  var %nick $$2
  var %messages 1
  var %error %message.count. [ $+ [ $nick ] ]
  while (%messages <= %message.count. [ $+ [ %nick ] ] ) { 
    var %nick_var %nick $+ %messages
    if (%message.user. [ $+ [ %nick_var ] ] == $nick ) {
      msg $nick The message to %nick saying " %message.user.msg. [ $+ [ %nick_var ] ] " has been deleted.
      unset %message.user. [ $+ [ %nick_var ] ]
      unset %message.user.msg. [ $+ [ %nick_var ] ]
      inc %error -1
    }
    inc %messages 1 
  }
  set %message.count. [ $+ [ %nick ] ] %error
  if ( %message.count. [ $+ [ %nick ] ] <= 0 ) {
    unset %message.count. [ $+ [ %nick ] ]
    ruser message %nick
    if ( %nick == %n3owner ) {
      auser owner %nick
    }
  }
}

on *:TEXT:!delete *:?: {
  var %nick $$2
  var %messages 1
  var %error %message.count. [ $+ [ $nick ] ]
  while (%messages <= %message.count. [ $+ [ %nick ] ] ) { 
    var %nick_var %nick $+ %messages
    if (%message.user. [ $+ [ %nick_var ] ] == $nick ) {
      msg $nick The message to %nick saying " %message.user.msg. [ $+ [ %nick_var ] ] " has been deleted.
      unset %message.user. [ $+ [ %nick_var ] ]
      unset %message.user.msg. [ $+ [ %nick_var ] ]
      inc %error -1
    }
    inc %messages 1 
  }
  set %message.count. [ $+ [ %nick ] ] %error
  if ( %message.count. [ $+ [ %nick ] ] <= 0 ) {
    unset %message.count. [ $+ [ %nick ] ]
    ruser message %nick
    if ( %nick == %n3owner ) {
      auser owner %nick
    }
  }
}

Comments

Sign in to comment.
worldwide7477   -  May 16, 2012

ok i have tried to use it but it brings everything up and this was the first send and never used it before now very nice script can you please fix it thanks.

!message * Just checking a message sender so if your not here and you use this to send to some one they should get it when they enter the room if ** is turned on this was sent wensday at 1:39am.
Mod ****: I will give*
your message as soon as i can.
» Sorry, but you have already sent this user a message. To delete this message, type !delete***

 Respond  
Callumlord   -  Mar 17, 2011

Great!!!!! :) Hurry on the next one. :) When it is out, can you message me when it is out???

C

 Respond  
blackvenomm666   -  Feb 16, 2010

no napa just doesnt like the use of var's period haha

 Respond  
uncled1023   -  Feb 16, 2010

ok, thats fine. :) I thought I used the right vars in there cases.

 Respond  
Jethro   -  Feb 16, 2010

There are two types of vars. One being the local and the other global. There are situations where global vars are preferred over the local ones, depending on how you go about your script use. They were monkeying around, I reckon.

 Respond  
napa182   -  Feb 16, 2010

thats not what he meant nor I im not ranting about local vars

 Respond  
uncled1023   -  Feb 16, 2010

why dnt you like vars napa? i think its a waste of space to set a new variable for each temporary variable.

 Respond  
napa182   -  Feb 16, 2010

SnoooP Said:

  • SnoooP waits for napa to go on a rant about vars ;x
  • napa182 rants and mumbles........

;x

 Respond  
uncled1023   -  Feb 16, 2010

ok, ill try to implement that into the next release.

 Respond  
SnoooP   -  Feb 16, 2010

Maybe add a !Message list ? So it displays your last 3 messages ;x

 Respond  
SnoooP   -  Feb 16, 2010
  • SnoooP waits for napa to go on a rant about vars ;x
 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.