Usage: MODE *|<channel> [+|-]<modechars> [<parameters>]
       MODE *|<channel> [+|-]b [<nick>[!<user>[@<host>]]]
       MODE <nick> [+|-]<umodechars>

  Mode command is quite complicated and it allows channel
  operators to change channel mode, or any user to change
  their personal mode. For a channel mode, <modechars> is one of 
  the following:
    i           - channel is invite only
    k <key>     - Adds join key <key> to the channel.  Keys can added or
		  removed (MODE <channel> -k <key>), but not changed.
    l <number>  - channel is limited, where <number> is the
                  maximum number of users allowed
    m           - channel is moderated (only channel operators talk)
    n           - No MSGs to the channel are allowed
		  from someone outside the channel.
    o <nick>    - Makes <nick> a channel operator
    p           - channel is private
    s           - channel is secret
                  Note: On 2.8 servers you cannot set both +p and +s modes
    t           - topic limits, only the channel operators may change it
    v <nick>    - Gives someone a voice to talk on a moderated channel. 

  A + or - sign determines whether the specified mode should be
  added or deleted.
  If you supply * as channel name, modes will apply to your current channel.

  The second form of the MODE command allows you to ban
  somebody from a channel. This is done by specifying
  a sting of the form nick!user@host. For example:
    MODE #MyChannel +b *!*@gus.*
  bans everybody from the channel who is on IRC from any
  machine whose name is gus.
    MODE #MyChannel +b netw1z
  bans anybody using the nickname netw1z.
    MODE #MyChannel +b *!merklin@*
  bans anybody whose user name is merklin.
    MODE #MyChannel +b jerk!tug@boat.edu
  bans the user tug@boat.edu from the channel whenever he
  is using the nickname "jerk".

  On the undernet, banning someone means that they cannot send public 
  messages to the channel, even if they are on the channel, unless they
  are also a channel operator.  So banning *!*@* would have the same
  effect as making the channel +m (of course, no one new could join the
  channel...)

  If you are channel operator, you can list the bans in effect on a channel:
    MODE #MyChannel +b

  The third form of the MODE command allows you to modify your
  personal parameters. You can precede any combination of the
  following with + or - (+to switch that mode on, - to switch it off).

    o        - IRC operator status. You may not turn this on
               with mode. To assert operator status, you must use OPER
    w        - Receive WALLOPS (messages directed at all operators.
               see WALLOPS.
    s        - Receive server notices. This includes KILL notices
               and notices about what is happening with links
               to the local server.
    i        - Render yourself invisible. This prevents you from
               being seen in WHO and WHOIS information, unless
               somebody specifies your exact nickname with WHOIS.
    d        - Go into "dumb" mode.  This prevents any public msgs
	       sent to any channel you are on from being sent to you.
               (undernet only)

  If you are on a +CS server, the following user modes are also allowed:

    c        - show client connects to your server (limited to operators)
    f        - show fake modes and nick collision kills
    k        - show operator kills
    r        - show connect attempt rejections
    u        - show unauthorized connect attempts

  These user modes change the meaning of +s, such that it will now only
  display messages not shown with the other user modes.

Note:
  Attempting to avoid a ban placed on you may result in
  forcible removal from IRC or being banned from your server.
