-======================================================================
-====== This is a -*- text -*- file and ===============================
-====== User Visible Changes In Bobot++ ===============================
-======================================================================
-
-IMPORTANT NOTE:
-+====================================================================+
-| As of version 1.98 unknown_lamer is the new maintainer. |
-| Also as of version 1.98, you must have Guile 1.5.6+ or 1.6.x in |
-| order to compile scripting support. |
-+====================================================================+
+(-*- text -*-)
+User Visible Changes In Bobot++
+
+IMPORTANT NOTES:
+ As of version 1.98 unknown_lamer is the new maintainer. Also as of
+ version 1.98, you must have Guile 1.5.6+ or 1.6.x in order to
+ compile scripting support.
=====================================================================
====== 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
+
+- 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
+ 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
priority and whether or not it falls through (i.e. continues hook
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
- bobot-utils.scm is now autoloaded, so you don't need to
load it if you want to use its functions.
- Logs are now in ~/.bobotpp/logs/
-- bot-* procedures in Scheme are now bot:*. The onl bot-* functions
+- bot-* procedures in Scheme are now bot:*. The old bot-* functions
are defined as aliases in bobot-utils.scm
- You can now use lambda's for new commands (oops, I wasn't protecting
the objects from garbage collection)