                         User Mode +g Documentation

Hybrid 7 includes a new and power feature that all users can take advantage
of to help prevent flooding and unwanted messages.  This new feature is 
invoked by setting user mode +g.  When a client is set +g, that user will
be in "Caller ID" mode.  Any user that messages a +g client will receive
a notice saying that they are in +g (server side ignore) mode.  The target
client (who is set +g) will also receive a notice saying that so and so
messaged them, and that they are in +g mode.

The target of the message will only receive one notification per minute, from
any client, in order to help prevent flooding.  The sender will NOT have the
rate limit, and will receive a notice saying the target is in +g mode every
time they send a message.  Note that this behavior is similar to the way AWAY
messages are done.

There are numerous benefits for both opers and regular users, including the
ability to stop spambot messages from ever reaching your client, stopping
private message and CTCP floods, and being able to sit on IRC in privacy.

One question that arises is how to message specific users, while blocking
out everyone else.  The command ACCEPT is your answer.  To add a user to
your accept list, issue the raw command ACCEPT <nick>.  That user will now
be able to send messages to your client until the association is broken.
Associations break in one of the following situations:  when an accepted user
QUIT's (or is on the other side of a split), you QUIT, or the accepted user
changes their nick.  The reason why a remote user's nick change will remove
them from your accept list is so that you cannot track a user after they
changed their nick.

Viewing the accept list is also very easy.  Issue the raw command ACCEPT *.
Removing a user from your accept list is also simple.  Issue the command
ACCEPT -<nick>.  

                              Sample Session

The easiest way to see how this works is by experiencing it.  Seeing a sample
session can help understand what goes on though.

Client Hwy-LL is set +g initially.
Client Hwy101 wants to message Hwy-LL

Note that some clients may have to use /quote ACCEPT instead of /accept.

--

Client Hwy101:  /msg Hwy-LL hi
Hwy101 will see:  -Hwy-LL- *** I'm in +g mode (server side ignore).
                  -Hwy-LL- *** I've been informed you messaged me.

Hwy-LL will see:  Client Hwy101 [wcampbel@admin.irc.monkie.org] is messaging
                    you and you are +g

--

If Hwy101 sends another message to Hwy-LL (before the minute expires), he will
see:  -Hwy-LL- *** I'm in +g mode (server side ignore).
and will not receive the second notice

Hwy-LL will NOT see any notice.

--

Hwy-LL now wishes to see messages from Hwy101.
Client Hwy-LL:  /accept Hwy101
Hwy-LL will see:  Now allowing Hwy101

Hwy101 will see:  -Hwy-LL- *** I've put you on my accept list.

Now Hwy-LL can see messages from Hwy101 without any blockage.
If Hwy101 was also set +g, then he would have to issue /accept Hwy-LL
before he would be able to see messages from Hwy-LL.

--

Hwy-LL now wants to see who is on his accept list.

Client Hwy-LL:  /accept *
Hwy-LL will see:  Current accept list
                  Hwy101

--

Hwy-LL now wishes to remove Hwy101 from his accept list.

Client Hwy-LL:  /accept -Hwy101
Hwy-LL will see:  Now removed Hwy101 from allow list

Hwy101 will see:  -Hwy-LL- *** I've taken you off my accept list.

--

It's easy to do the same thing with multiple clients.

Like Dalnet and Undernet's SILENCE system, the accept list only exists while
you are connected to IRC.  In order for you to have the same accept list
every time you come onto IRC, you must put the accept commands into your 
client's auto-perform, or manually issue the commands each time.  

This system may seem similar to the SILENCE system, but it is actually a
reverse SILENCE.  SILENCE ignores certain users and allows the rest.  Mode
+g ignores all users except certain ones (on your accept list.)  Both systems
have their place, but the mode +g in Hybrid 7 is what the developers thought
would be most useful on EFnet.

The goals of this user mode is to provide protection from flooding and
spamming, and to provide users with a means to keep their privacy.

We hope that these goals are obtained.

--
Walter Campbell
$Id: modeg.txt,v 1.1 2001/01/26 03:11:54 wcampbel Exp $
