[project @ 2005-06-25 18:11:10 by unknown_lamer]
[clinton/bobotpp.git] / NEWS
diff --git a/NEWS b/NEWS
index dc46be3..abd164e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,20 +10,124 @@ IMPORTANT NOTES:
 ====== The News =====================================================
 =====================================================================
 
+Version 2.1.8: 
+- Scripting
+  + Hooks
+    * Added bot:protection/[none|ban|kick|deop] and bot:aop/[yes|no]
+      constants to the Scheme scripting interface
+    * hooks/timer argument is now zero padded instead of space padded
+      (e.g. "11:01" instead of "11: 1")
+    * hooks/disconnect is now called when the bot is disconnected from the
+      server unintentionally (network connection timeout, server died,
+      etc.)
+  + Message Sending
+    * Implemented bot:notice
+  + Misc
+    * Added (bobotpp bot) module that modules may use to gain access
+      to the bobot++ functions
+    * bot:msg and bot:say may both send to channels and users (instead
+      of bot:msg for users and bot:say for channels)
+  + Debugging
+    * The debugging evaluator is now enabled when --debug is passed to the bot
+- Documentation
+  + Merged documentation patch from Dale Smith (thanks)
+
+
+Version 2.1.7:
+- Fixed a number of small bugs and corner cases
+- Should compile without warnings (GCC 3.4)
+
+Version 2.1.6:
+- The String class implementation has been redone and replaced by one
+  based on std::string (eventually String will be gone entirely, but
+  it a lot of work)
+- Patches from Jos Hulzink <josh@stack.nl> were applied which fix a
+  few major bugs in the StringTokenizer (thanks)
+
+Version 2.1.5: Cleanups
+- A DCC CHAT with the bot may now only be initiated if the user is a
+  Friend of the bot
+- Implemented bot:ctcp-quote
+- The Bot Configuration section of the manual has been completed.
+- Fixed a potential (but unlikely) buffer overflow in Utils::strToTime
+  (if there were more than 512 digits in part of the string form of
+  the time the buffer would overflow)
+- Misc. Bugfixes
+
+Version 2.1.4: DCC Support Enhancements
+- Internal Change: DCCConnection is now an abstract class
+- Internal Change: DCCChatConnection provides the functionality of
+  the old DCCConnection so that DCC FILE support can be added
+- New Scheme Procedure: (bot:sent-to-me? message), checks to see if a
+  message was addressed to the bot. This is better than using
+  bot:match-to-me because the hook will continue to function if the
+  bot's nick changes. The only downside to using it is that there may
+  be an increased overhead of calling more hooks than could be called,
+  but that shouldn't be much of a problem.
+- New Scheme Procedure: (bot:change-command-level command level),
+  changes the level a user command to allow a user of `level' level or
+  above to run it.
+
+Version 2.1.3: Something
+- The flood rate can now be set using !setfloodrate INTEGER. The
+default is two messages per second before the bot will ignore
+you. (thanks to Björn Gustavsson for requesting this)
+- The flood rate may also be set from Scheme using (bot:setfloodrate
+integer)
+- A very large crash bug has been fixed. Previously, if an undefined
+command was called, any attempts to call a subsequent command would
+cause the bot to crash. Now the bot doesn't crash.
+
+Version 2.1.2: Llama
+
+- match-to-me and match-not-channel are now bot:match-to-me and
+  bot:match-not-channel. Just use perl -pi -e
+  "s/match-to-me/bot:match-to-me" SCRIPTS (change to match-not-channel
+  for match-not-channel).
+- Each script is now loaded into its own module so namespace clashes
+  should no longer occur
+- New procedure: (bot:load-module INTERFACE-SPEC) will load a "bot
+  module" with the specified INTERFACE-SPEC (e.g. (foo bar)). A bot
+  module is the same as a system module except that you don't use
+  define-module to define it. The %bot:loadpath is searched for
+  INTERFACE-SPEC (when converted to a string) with an extension in
+  %bot:load-extensions. E.g. (foo bar) becomes "foo/bar".
+- New procedure: (bot:use-module INTERFACE-SPEC) is the same as
+  bot:load-module except it will make the exported bindings from
+  INTERFACE-SPEC available in the current-module.
+- Updated example bot and new example scripts included with the bot.
+
 Version 2.1.1: foom
+
+- Host masks are now case insensitive when matched. At least one other
+  person thought this was a good idea since IRC is case preserving but
+  not case sensitive.
 - You can now "name" a hook using an extra arg to bot:addhook. This
   name can be used to have multiple hooks of the same type with the
   same regexp. The default name is "DEFAULT" so don't use that as the
   name for your hooks.
 - Logging now works again (oops, I didn't realize I broke it until I
   started to work on DCC).
-- DCC CHAT now "works." You can connect to the bot and talk to to it,
-  but it doesn't do anything useful.
+- DCC CHAT now "works." You can connect to the bot and talk to to it
+  and use Scheme hooks to talk to the user.
+- New hooks: hooks/dcc/chat-begin and hooks/dcc/chat-message. These
+  are called when a new DCC Chat begin and when the user sends a
+  message.
+- New Function: bot:dcc-chat-send TO MESSAGE, sends a MESSAGE to the
+  person at address TO
 - New hooks: hooks/send/... where ... is one of action, ctcp, public,
   or message. These are triggered when the bot does an
   ACTION, sends a CTCP (_not_ a ctcp-reply), sends a PRIVMSG to a
   channel, or sends a PRIVMSG to another user, respectively. There
   will be more send hooks added later.
+- New hooks: hooks/dcc/chat-begin and
+  hooks/dcc/chat-message. chat-begin is called when the chat starts
+  and has one argument: the address (in user!nick@host
+  format). chat-message has two arguments: from (user!nick@host) and
+  message, which is the raw message (since there is no real protocol
+  for DCC). chat-start hooks are matched against the address and
+  chat-message hooks are matched against the text "ADDRESS MESSAGE"
+  where ADDRESS is the sender's address and MESSAGE is the message.
 
 Version 2.1.0: Zug Zug
 - Hooks can now be fallthrough or non fallthrough. You can set a hooks
@@ -35,12 +139,12 @@ Version 2.1.0: Zug Zug
   before non-fallthrough hooks. 
 - The default config is read from ~/.bobotpp/config/default/ or
   /etc/bobotpp/default/ if the user config is not found. Put your
-  default config is either dir. You may also specify a specific config
+  default config in either dir. You may also specify a specific config
   under these dirs using the --config or -c arg to bobotpp (see
   bobotpp --help for the full list of commands you may use and how to
   use them).
 - Scripts are now stored in ~/.bobotpp/scripts/ or
-  PREFIX/bobotpp/scripts/ (where PREFIX is /usr/local unless you
+  PREFIX/share/bobotpp/scripts/ (where PREFIX is /usr/local unless you
   changed it with the --prefix arg to configure). The new function
   bot-load will take a filename and load it from these dirs, returning
   #t if the file was loaded and #f if it wasn't. You can modify the