hipMessagesAndCTCPs Plugin

Overview

This plugin provides a variety of commands and services related to private messages and CTCPs.

Normally, if someone does CTCP SOUND and doesn't provide a filename to play, Ircle sends a list of all the files in your sound directory. If the person who did the SOUND command changes nicks, you can get hundreds of error messages about "no such nick". I've asked Onno to provide a preferences option to disable this feature. Until he does, this plugin automatically disables that feature by just ignoring CTCP SOUND commands with no filename.

/autoquery Command

/autoquery [on | off]

This command activates or deactivates auto-query. Auto-query will automatically open a query window whenever a message comes in from a user. When the first message comes in and causes the query window to open, the message-arrived sound will play.

/ccignore command

/ccignore
/ccignore commandName
/ccignore -[ commandName or number ]
/ccignore [ silent | verbose ]

This command is identical to /cignore, except that it affects only CTCPs that are addressed to the whole channel.

For example, if you do /ccignore GESTALT, it will not respond to someone doing /ctcp #macintosh GESTALT but will respond to /ctcp YourNick GESTALT.

/cignore command

/cignore
/cignore commandName
/cignore -[ commandName or number ]
/cignore [ silent | verbose ]

This command adds, deletes, or lists CTCP commands you want to completely ignore, no matter who sends them, whether they're sent to you privately or to the whole channel. When someone sends you a CTCP command/request that's on this list no response is sent to the requester and no action is taken locally.

If you set the silent option, you are not told when a CTCP on the list came in from someone and was ignored. If you set the verbose option (the default), you are told when the CTCP is being ignored and who sent it.

You cannot ignore CTCP ACTION (/me) with this command. The normal flood-checking happens first, so if someone is flooding you with CTCPs that are on this list, you will be told they're flooding and they will be ignored as usual.

/dnd Command

/dnd [ On | Off ]
/dnd [ All | -All]

Used with the On or Off parameters, this command turns Do Not Disturb mode on or off in the connection you type it in. Used with All or -All, it turns DND on or off in all connections. Without any parameters, it shows which connections have DND on.

When Do Not Disturb mode is on, most incoming messages, notices, invites, and CTCP PAGEs are ignored (but other CTCPs are responded to as normal).

There are some semi-complex interactions between Do Not Disturb mode and other HipScript settings. The idea is to let a limitted subset of messages through but ignore the bulk of incoming messages, especially from people you don't know. ("Messages" here means private messages, notices, invites, and PAGEs).

When DND mode is on and someone sends you a message, they are politely told you have Do Not Disturb mode turned on, by sending them the following notice:

I'm sorry, <yournick> has Do Not Disturb turned on, and all messages are being quietly discarded.

This notice is sent to them no more often than once every 3 minutes. You don't see it being sent. If the person sent you a notice (rather than a message, invite, or PAGE), they are NOT told that you have DND mode on, because RFC1459 (the IRC standards document) forbids replying to an incoming notice. (I know this may be a hassle when you're dealing with mirc users who routinely use /notice instead of /msg. They're idiots. I can't help that. I refuse to violate the IRC standards for them.)

/lastmsg Command

/lastmsg

This command re-displays the last message you received. It's especially handy if a message arrives just as you're closing a window, causing you to miss the message.

/mignore Command

/mignore
/mignore last
/mignore nick[!user@host]
/mignore -[nick!user@host or number]

This command creates, deletes, or lists names from which you'd like to ignore incoming messages and CTCPs. This is a milder version of /ignore -- you can ignore messages but not things said in public channels.

If you use 'last' as a parameter, it adds the last person who msg'd you to the ignore list, using smart userhost masking. Wildcards are allowed in the nick!user@host mask. 

This command will ignore CTCPs, messages, notices, and invites from the people on the list.

The command uses both the server /silence command, and internal logic to ignore the user in case the server doesn't support /silence.

The list is not persistant; all entries are discarded when you quit ircle. To make persistant ignore entries, use ircle's ignore feature (on the friends tab in prefs).

This command tells the person they're being ignored when you add them to the list. If you don't want it to tell them that, use /mignoreq. (Q for quiet).

/msgflood command

/msgflood limit

This command sets the limit used for protecting against message floods. If a user (detected by host, not nickname) sends you a message, notice, or invite more times than the limit within 20 seconds, the user is automatically added to the /mignore list. Something in the range of 10-20 should be a good value.

Set the limit to a number higher than 50 to disable detection on message and ctcp floods.

20 seconds was chosen as the limit because if the events are happening slower than that, you'll be able to manually ignore the user with /mignore last.

/msgfloodokay Command

/msgfloodokay
/msgfloodokay nick[!user@host]
/msgfloodokay -[nick!user@host or number]

This command creates, deletes, or lists names from which a flood of messages, notices, or invites is allowable. People on this list can also get through to you even if you have Do Not Disturb mode (/dnd) turned on.

Users on the floodokay list are allowed to send you any number of messages or notices without getting ignored by the normal flood-protection logic. If you have a query window open to a user, that also disables flood protection on that user while the query window is open.

Dalnet users should add *serv!*@*dal.net to this list, so that NickServ, ChanServ, and MemoServ don't get ignored for flooding you.

/msglogger Command

/msglogger [ Off | On | SayTime]

This command turns the message logger feature on or off. The message logger captures all private messages received while you are /away. If you enter the command with no parameters, it shows the current setting. Even when the message logger option is On, the logger is only active when you are /away.

The SayTime option is the same as On, but adds the length of time you've been /away when it tells the sender that incoming messages are being logged.

The HipScript message logger works a bit differently than other scripts' message loggers. Instead of storing the messages internally and later requiring you to use commands display and delete them, it uses a separate message logger window.

If a message arrives while you are /away, and a specific query window for that user doesn't already exist, the message logger window is created, and the incoming message is displayed in that window. All messages received while you're /away are added to the message logger window, each with a prefix showing what connection number, server name, nickname, and user@host the message came from.

When the message log window is created, the 'log to disk' attribute is set for it. Unfortunately, this doesn't work. Hopefully Onno will fix it so that scripts can turn logging on for a window. So... you can keep a disk-based log of the message log window only by using the Ircle preference to automatically log all query windows, or by manually saving the window's contents to the log before closing it. Once you close a message log window, the disk-based log of it is the only remaining copy of those messages. The next incoming message to be logged will open a new empty message logger window. (If you need a running record of logged messages over time, set the "Append to existing logs" option in the Ircle preferences.)

If you have the /autoquery option on, new autoquery windows are NOT created while you are /away; incoming messages go to the logger window.

/msgloggersound Command

/msgloggersound [ Off | On ]

This command turns the message logger sound feature on or off.

When off, new messages are silently added to the msg logger window; this is the default.

When on, each message that's added to the logger window is accompanied by the incoming-message sound as set in the user's Ircle preferences. Note that if the sound for messages is off in the Ircle prerferences, there will be no sound even if /msgloggersound on is set.

/querylast Command

/querylast

This command opens a query window for whoever last sent you a message. Hint: you might want to use /alias to create a shorter form of this command, such as /q or /ql.

/ovcolorstrip Command

/ovcolorstrip [on | off]

When turned on, this feature strips all color and text attributes from a +o/+v notice before routing it into the proper window for the channel it's destinited for. Handy if you have ops privs in mirc-ish channels.