[project @ 2005-06-01 11:12:41 by unknown_lamer]
[clinton/bobotpp.git] / NEWS
diff --git a/NEWS b/NEWS
index da04de1..0cd9df2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,22 +10,104 @@ IMPORTANT NOTES:
 ====== The News =====================================================
 =====================================================================
 
+Version 2.1.8: 
+
+- Added bot:protection/[none|ban|kick|deop] and bot:aop/[yes|no]
+  constants to the Scheme scripting interface
+
+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 has been removed and replaced by std::string
+- 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
-- Hooks are now executed when the bot sends a privmsg. This now makes
-  log scripts able to log what the bot said. This probably has other
-  uses too and shouldn't have any real impact on performance (since it
-  has to execute hooks on all incoming messages anyway, and there are
-  probably a lot more incoming than outgoing).
+
+- 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.
-- There is a new macro for scripts--"not-from-me". This allows you to
-  protect your hooks from calling themselves because they trigger
-  themselves.  See the manual for more about what it does 
-  (Scripting->Misc Scripting Stuff).
 - 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
+  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
@@ -37,12 +119,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