Done: * DCC CHAT min user level * Lots of hooks related stuff that I never wrote down * Abstract DCC support so that DCC FILE may be easily implemented 2.2: * Utils::isValidNickName should have a configurable max nick length (now that most networks allow for longer than nine character nicks). This is dependant upon the new configuration system * Finish adding commands to Scheme for sending messages (e.g. bot:send-CTCP to send a CTCP message) * Add util functions for doing stuff like quoting CTCP messages * Finish adding hooks/send hooks * Write Texinfo manual * Configuration Database * Improve the help system * DCC FILE support (sending and recieving) * XDCC file server script (requires DCC FILE support) * bot:protection/[none|no-ban|no-kick|no-deop] constants * bot:aop/[no|yes] constants * Extend AOP to support +v (0 = no op, 1 = +o, 2 = +v) * Add DCC_CHAT_END hook for Scheme 2.4/3.0 (2.4 iff backwards compatibility is maintained, 3.0 otherwise): General: * Eliminate String class * Finish converting UserCommands to use Commands * Audit code and see what data in classes should be made private and have getters/setters added (e.g. logFileName in Bot--if this is changed the log file doesn't change after the Bot is started). Scripting: * Add commands to delete a hook - return an iterator to the Hook - this would require a new SMOB to be created - Scheme could pass Hook objects around and do nifty things - At least allow all hooks of a type with the same name field to be deleted at once (also all hooks with the same name). Also allow deleting based on the regexp Networking: * Add a networked interface to guile repl - This can be done as a script, but requires non-coop threads support to be done easily - Admins only - Telnet - Store authorized users and passwords in bot.telnet file - Bot master can add new telnet users - MUST HAVE PASSWORD - Maybe use SSL? Definitely 3.0: * Remove gh_* when Guile 1.8 is released * Make it possible to use Scheme functions in the Parser itself * Replace large select-loop in Bot::waitForInput with multithreaded CC++ sockets (this will require locking around everything Guile related). UPDATE[2002-11-02]: Guile CVS now has coop threads built on top of pthreads, which I could probably use when 1.8 nears release. UPDATE[2002-12-22]: Guile CVS now has support for full pthreads, no more coop stuff. After 1.8 is released threads will probably be used. - To clarify: There will be one thread for DCCs and another thread for the current irc server connection, each with its own select loop. There may also be a thread for the network repls if I implement those. * New config values in config db should be added before old values (this is faster but breaks the way server lists work in 2.x)