* SVIEW -a on non-joined users should still show the join-count

* Make it possible to change PUBLIC status on commands.

* 'CONFERENCE MODE'

  Written in the top of the new source file confmode.c

* Make the commands appear in a group-style, inspired by the SET stuff.

* MYINFO <item> <value>
  A complete system for changing user-specific info and data fields. I'd like
  it to replace the commands LANGUAGE, COMMENT and SETEMAIL. For the NEWS
  system, I'd like it to be able to manipulate AUTONEWS (see below). I think
  this will make it easier for each user to manipulate their own data now and
  in the future. This system will be SET inspired.
  / Bagder

* I get a ban problem:
  imagine that on the #channel there is a ban : *!*test@*.test.com
  If I do the command:
  ban *!*@*.test.com
  The bot will not detect that there is a ban, blocking this one and that the
  ban, it sent will not have any effect.
 
  Do u think, you can program the bot, to take care of bans which are already
  on the channel ? So that, for instance, it would unban *!*test@*.test.com
  before banning *!*@*.test.com.
  / by gfiger@usa.net

* Make \001 ACTION <XXX> \0001 down the DCC chat while in chat mode get
  translated to a proper !me

* Add 'joined minutes' to the seen engine. We could gain 'toally joined
  minutes' but more important display the join-time of the last visit (which
  is the only fail-proof info we can get from it)

- Major improvements

  * Alias system (see also Commands) should get improved and debugged

  * Inter-bot communication. Link bots together to improve performance.
    Design generic protocol.

  * File service

  * Alert mode (see Takeover fighting)
    - Partly added. Just make sure that it gets used on proper places!

  * Game system (see Games)

  * Multi-channel (low prio, many unsolved probs)

  * Per-user defined aliases

  * Design a bot kernel (like a microkernel)

- Recently thought-up misc

  * SEEN with complete wildcard support for both nick *AND* host. I.e if we
    do have several with the nick 'foobar', a SEEN 'foobar!*uk' could show us
    the foobar from the uk domain...

  * Some kind of prio in the server-list. Possibility for the user(s) to
    move a specified server first in the list (so that particular server
    will be attempted to connect to first).

  * CMD <level> to view cmds for a certain level

  * myaddr vs myhost

  * regex used anywhere except to detect netsplits in server.c ?

  * Convertion between Kb, Mb, etc. (bytes)

- Multi-channel

  * To be solved in project Triacle

- Takeover fighting

  * "Alert mode" and +i during *HEAVY* attacks.
    - Alert Mode support is already added. Should we consider letting the
      bot get power enough to set +i on ALERT_RED ?

  * Very fast multiple joins from the same domain => siteban.

- Commands

  * Verbose switches. BAN -ENFORCE would equal BAN -E ...

  * A SUGGESTION command (much like BUG)

  * an alarm clock function for Dancer.
   It could have "Gentle reminder", "Kick off the channel, you have work
   to do", and "Kick and ban: go to your lecture" settings for when the
   alarm went off ;)
   'Hmm, +hh:mm from now, or an absolute time in GMT'
   Or else you could have Darx to a CTCP TIME to find out their current
   time zone... that would be clever'

  * say and me should override the "talk" flag when the user has the right
    status.

  * more possible toplists:
    - rate = highest lines/minute

  * a command that can show who of the current guests that have the highest
    status on the bot could be useful. For ppl who want actions done but have
    no status to do it themselves.

  * If the number of commands drastically increases it might be a good
    idea to use tries instead of incremental search. If this is the case,
    trie.c would have to be rewritten not to use global variables (and
    some of those functions could be made macros or inlined instead.)
    Or maybe hashing or signatures.
    Go with perfect hashing in gperf.

  * TELL - make it accept hosts too.

  * GET command to send files via dcc (GETLIST lists all files
    in a certain download directory). Relation to FIND?
    Option for uuencode | mail?
    Look at source for ircII to see how dcc really works.

  * Wild idea: INFORM command. Multicast timed TELL.

- Replies

  * Better online help texts for the commands and sets. Multiple lines
    for commands.

  * Precalc fixed regex patterns

  * Localization (SPEAK). Let the bot reply in the language belonging
    to top-level domain, user selected setting, or default (which is
    english)

- Join messages

  * Birthday greeting

  * Unify these join messages. Type indicating warning, greeting,
    and birthday. (also with tell?)

- Bans

- Files


- Games

  * Simple turn-based games (mastermind, sinking battleships, etc.)
    PLAY [ <game> | <num> | LIST | RULES [<game>|<num>] | STATUS | QUIT ]
    MOVE <arguments>
    Quit if person leaves. Only one game per person at the time.

    > PLAY mastermind
    < Mastermind: Initiated. Type PLAY RULES if you're not familiar with
      the rules. Make your move.
    > MOVE rgbrgb
    < Mastermind: 4 colours, 2 places
    > MOVE bgrbgr
    < Mastermind: You won!

- Techincal issues

  * Figure out how to put #define'd values in constant strings.

  * What if all dcc chat connections are in use? Close least recently
    used (if level less than yours) and use that?

- Misc

  * Hash nicks to speed up search? (FindNick)
    o hash = (hash<<1) + *nick++
      This will easily fit 9 chars nicks (but how about Dalnet's wide
      nicks?)

  * Timeout limits for
    - idle DCC chat connections
    - connecting DCC chat/link connections

  * Value for how many times it should cycle through the server list

  * Don't increase join-counter on frequent joins/leaves

  * if it's alone on a channel and does not have @, it should part and join
    automatically

  * ability to 'reload' the .config file without restarting.
    (and/or function to reset bot to default)

  * is there any way to find out from darx when I was last joined?

  * Record and store information about who set +o on each user.
    (Should be done with FPL scripts)

  * SEENLAST command that displays the X latested joined users.
