There have been quite a few changes in Hybrid 7 and this is a list of the main new features:

The Config File has drastically changed.  It now however allows most of the
options that were in config.h, to be changed with a /rehash.  

------------------
 Channel Changes:
------------------

- Channels are now flood controlled for unopped/voiced users.  If too many
  messages are sent to the channel in 1 second they will be throttled.  The
  value needed is set in /quote SET FLOODCOUNT, and is in the config as a
  startup value.  A side effect is CTCPs will be throttled for non-ops, but
  this cannot be helped.

- Half Ops are added.  This gives a user most of the power of a chanop (@)
  but without the ability to take over the channel.  Half-ops can kick
  unopped users, voiced users, set channel modes including +v, but not kick
  ops, or deop ops.   This leads to greater security on channels.  This is
  the mode (+h) and is seen as % on the channel list.

- Channel Op Hiding is now included as a channel mode.  By setting the
  mode +a when a user joins the channel, they will not see who is opped,
  voiced, or halfopped.  They will see mode changes except +ohv but will
  see them as: 

       *** irc.server sets mode +b nick!user@host on #channel

  When a user is opped, the user will see a server generated "massmode"
  showing them the real list of who is opped/halfopped/voiced to keep
  clients in sync.

- The infamous VChans are included.  This allows multiple channels with the
  same name.  When joining a channel with vchans, a simple JOIN #channel
  will show a message saying which channels are available.  The user will
  then have to JOIN #channel !key with one of the provided keys.  Creating
  a new vchan is easy as well.  Part the channel and do /quote CJOIN #channel.
  A new view of the channel is created.   A legitimate op can just CJOIN a
  new vchan and get all of the old users over to the new vchan.  The takeover
  people will then be sitting opped by themselves in a vchan while the
  original users are back the way they were before in another vchan.

  The command CJOIN and vchans are configurable in the config file:
       vchans_oper_only=yes; will make CJOIN oper only
       disable_vchans=yes;   will stop vchans being recognised on this server

- Channels that have existed for at least 30 minutes are now preserved for 30
  minutes if they are empty or split.  If a channel was +i before a split, it
  will remain that way for 30 minutes.  All bans will still exist, preventing
  abusers from joining through a ban on splits.  A user that does successfully
  join an empty preserved channel will have ops.  If it was split at the time,
  the timestamp protocol will remove the newer side's ops.  These preserved
  channels replace the old NO_CHANOPS_ON_SPLIT and NO_JOIN_ON_SPLIT options.


--------------
 User Changes: 
--------------

- AWAY is now propagated from server to server

- Server side ignore is included for all users.  Setting user mode +g will
  make you ignore all private messages.  Channel messages are not affected.
   People who you wish to communicate with can be permitted with the
  /quote ACCEPT nick command.  The current accept list can be seen with  
  /quote ACCEPT *, and nicks can be removed with /quote ACCEPT -nick.
  When a user tries to message you when you are set +g, and they are not
  on the accept list, they will receive a message saying you are on server
  side ignore.  You will also receive a message, but it is paced, so you will
  only receive a notification every 60 seconds.  When a user changes his or
  her nick, he or she will be removed from any other user's ACCEPT list.  This
  must be done in order to prevent other users from being able to trace another
  user through NICK changes and the like.  When a user is placed on the ACCEPT
  list, the user will be notified.

- Due to the new flood control for users, the multiple message restriction has
  been removed. (/msg nick1,nick2,nick3 message) and is configurable in the
  config file.


------------------
 Operator Changes:
------------------

- Unauthorized connection notices have been moved to the +u user mode.

- A new drone warning mode has been added... +e.  Setting +e will show the
  gecos ("Real Name") field in a notice similar to the +c connection notice.

- Remote K-Lines are supported.  These allow you to permit operators on 
  remote servers to place klines on your server.  The shared block in the
  config specifices what server to allow remote klines from, and what
  user/host on that server, to restrict it to a specific oper on there.
  This is detailed more in doc/kline.txt

  To K-Line on a specific server:
     /quote kline user@host on irc.server :reason
     /quote kline [time] user@host on irc.server :reason

  To K-Line on multiple servers:
     /quote kline user@host on *.uk :reason
     /quote kline [time] user@host on *.uk :reason

  To K-Line on all servers:
     /quote kline user@host on * :reason
     /quote kline [time] user@host on * :reason

  To K-line locally only:
     /quote kline user@host :reason
     /quote kline [time] user@host :reason

- Local operators are no longer part of ircd.  The oper flags are used to
  restrict what each operator can do.

- User modes can be specified oper only.  This is yet another start time
  configurable option in ircd.conf.  See the comments in example.conf for
  more details.

- STATS e now shows events.

- STATS f now shows active file descriptors.

- LOCOPS have been moved away from the traditional +z usermode (operwall)
  and into their own usermode: +l.  This allows oper to ignore operwall,
  but still listen to locops.


-----------------------
 Miscellaneous Changes:
-----------------------

- zlib is gone.  If you want ziplinks, you need to have zlib installed
  somewhere configure can detect it.  Almost every system on the planet
  should have zlib installed by now, if not, just install it yourself.

- Encrypted server<->server links are now supported.
  See doc/cryptlinks.txt and doc/example.conf.

- Server hiding is also a conf file option.  With this option enabled, only
  opers can see what server a user is on.  TRACE are disabled for non-opers, 
  WHO, WHOIS and WHOWAS are modified to not show the real server a user is on.
  LINKS is modified to show a "flat" tree.  Users doing links will appear that
  everything is linked to their current server, thus hiding the hubs.

  This feature needs to be enabled network wide for it to be fully effective.

- LazyLinks are now included.  These enable a leaf server to only need
  information about channels that it's local users are on, and nicks that have
  been used (in a channel, in a private message, or in a WHO or WHOIS by a user
  or channel on the leaf).  Read the LazyLinks.as.implemented.txt document for
  more information.

- Nearly all commands are now modules.  MODLIST will list all loaded modules,
  MODUNLOAD will remove a module from the ircd, and MODLOAD will load a new
  module into the ircd.  MODRELOAD will unload then load the module in one
  simple command.  All of these commands are documented in opers.txt and are
  restricted to admins only.

- HUB is now a runtime option.

- Classes (Y: lines) can now have names instead of numbers.

- Hybrid now supports IRCnet like redirection.  The redirserv and redirport
  options in an auth {} block will allow an admin to specify other servers
  to forward user connections to.  The client must support the 010 numeric
  for this to work (EPIC supports it).  Note that there must always be a class
  field in auth blocks, even ones that will just do redirection.

- Autoconnects are far more customizable now.

- There are hooks in the code, that loadable modules can plug into.  These
  hooks provide interfaces for user enhancement.  There are some hook modules
  provided in contrib, providing WHOIS notice, STATS notice, and LINKS notice.
  Others will be added as the ircd matures.

- Hybrid now has the ISUPPORT/005 numeric, showing the client what modes this
  server will support, and what commands:

    KNOCK          - Support KNOCK
    VCHANS         - Support Virtual Channels
    MODES=%i       - The number of channel modes accepted per MODE command
    MAXCHANNELS=%i - The compiled in maximum channels per user (Note that this
                     may become controlled in class {} in the future)
    MAXBANS=%i     - The compiled in limit on the number of bans per channel
    MAXTARGETS=%i  - The number of users that may be chained together in a
                     PRIVMSG or NOTICE (user1,user2,user3...)
    NICKLEN=%i     - The maximum nickname length
    TOPICLEN=%i    - The compiled in topic length
    KICKLEN=%i     - The length of a KICK message
    CHANTYPES=%s   - The types of channels supported (currently '#&')
    PREFIX=%s      - The allowed PRIVMSG/NOTICE channel prefixes (server based
                     /onotice, NOTICE @%#channel :message)

- CAPAB List:

    TS      - Support the TS protocol
    QS      - Remove the QUIT storm on splits
    EX      - Support +e exceptions in channels
    CHW     - Support PRIVMSG/NOTICE @#channel messages
    LL      - LazyLink server
    IE      - Invite Exceptions - +I on channels - All nick!user@hosts listed in
              a +I are exempt from having to be invited to the channel before
              JOINing
    VCHAN   - Support Virtual Channels, and the bursting of persistant channels.
    EOB     - End of Burst - Servers with this enabled cannot issue burst
              commands after it sends and receives an EOB command, thereby
              preventing op hacking
    KLN     - Support remote K-lines
    GLN     - Support G-lines
    HOPS    - Support half-ops
    HUB     - Is a hub server (used to prevent two LL hubs from linking in that
              state)
    AOPS    - Supports anonymous channel ops (channel mode +a)
    UID     - Unique user-ID support
    ZIP     - Ziplink (Link is compressed with zlib compression)
    ENC:a,b - Encrypted link, where 'a' is the cipher being used to decrypt
              incoming data, and 'b' is the cipher being used to encrypt
              outgoing data.
    

# $Id: whats-new.txt,v 7.23 2001/05/22 19:11:35 davidt Exp $

