Functionality: Private messages - mIRC-scripts/dlFilter GitHub Wiki

Private messages are messages (of all forms) sent to you as an individual rather than sent to a channel. Obviously being able to exchange Private Messages with your friends is great functionality, but being pestered by private messages from people you don't know about subjects you are not interested in can be annoying, particularly when each user messaging you can result in a new mIRC window opening.

Private messages can be:

  1. Normal text messages
  2. Action messages
  3. Notices
  4. ctcp requests (other than VERSION and DCC requests which are handled separately)
  5. ctcp-reply messages

mIRC handles these messages in two different ways:

  • Normal text and Action messages are either sent to the Single Message Window if you have enabled that in mIRC's Options / IRC, or opens a new Query window for that user.
  • The remaining types of messages are sent to the active and / or status windows.

It does this regardless of whether the sending user already has a query window open, whether they are on your notify or highlight lists, regardless of if the user is a service userid, and regardless whether they are in a common channel with you or not.

This creates two potential problems:

  • You can have a multitude of query windows open in quick succession when you issue an @find trigger or if a spammer targets you for a denial of service attack;
  • Messages resulting from your own triggers can appear in a completely different window to the one you issued the trigger in.

dlFilter operates from the position that all private messages should be displayed in a consistent way and in the most appropriate window (or using the same classification, filtered out):

  1. If a query window is already open for that user, then it should be displayed in the query window.
  2. If the user is in one or more common channels, then it should be filtered or displayed in the common channels.
  3. If the user is not in a common channel but is in your mIRC notify list, then (depending on your mIRC Options settings) it should be sent either to your Single Message Window or a query window should be opened for it.
  4. If the user is not in a common channel and not in your mIRC notify list, then it should be filtered or sent to the Single Message or Status windows.