[project @ 2005-06-25 18:11:10 by unknown_lamer]
[clinton/bobotpp.git] / NEWS
CommitLineData
91dddabd 1(-*- text -*-)
2User Visible Changes In Bobot++
be3612f3 3
91dddabd 4IMPORTANT NOTES:
5 As of version 1.98 unknown_lamer is the new maintainer. Also as of
6 version 1.98, you must have Guile 1.5.6+ or 1.6.x in order to
7 compile scripting support.
be3612f3 8
9=====================================================================
10====== The News =====================================================
11=====================================================================
2e20c3e1 12
af8c61fe 13Version 2.1.8:
5aec4622 14- Scripting
15 + Hooks
16 * Added bot:protection/[none|ban|kick|deop] and bot:aop/[yes|no]
17 constants to the Scheme scripting interface
18 * hooks/timer argument is now zero padded instead of space padded
19 (e.g. "11:01" instead of "11: 1")
20 * hooks/disconnect is now called when the bot is disconnected from the
21 server unintentionally (network connection timeout, server died,
22 etc.)
23 + Message Sending
24 * Implemented bot:notice
eb3864fb 25 + Misc
26 * Added (bobotpp bot) module that modules may use to gain access
27 to the bobot++ functions
4cc479d8 28 * bot:msg and bot:say may both send to channels and users (instead
29 of bot:msg for users and bot:say for channels)
606a8eec 30 + Debugging
31 * The debugging evaluator is now enabled when --debug is passed to the bot
5c73c60a 32- Documentation
33 + Merged documentation patch from Dale Smith (thanks)
5aec4622 34
af8c61fe 35
980ce0f4 36Version 2.1.7:
cf8ea873 37- Fixed a number of small bugs and corner cases
38- Should compile without warnings (GCC 3.4)
980ce0f4 39
2e18045a 40Version 2.1.6:
8db6cd17 41- The String class implementation has been redone and replaced by one
42 based on std::string (eventually String will be gone entirely, but
43 it a lot of work)
2e18045a 44- Patches from Jos Hulzink <josh@stack.nl> were applied which fix a
980ce0f4 45 few major bugs in the StringTokenizer (thanks)
2e18045a 46
c8f13c06 47Version 2.1.5: Cleanups
48- A DCC CHAT with the bot may now only be initiated if the user is a
49 Friend of the bot
50- Implemented bot:ctcp-quote
c7d9fb19 51- The Bot Configuration section of the manual has been completed.
a6339323 52- Fixed a potential (but unlikely) buffer overflow in Utils::strToTime
53 (if there were more than 512 digits in part of the string form of
54 the time the buffer would overflow)
6b59e728 55- Misc. Bugfixes
c7d9fb19 56
4edefeb6 57Version 2.1.4: DCC Support Enhancements
58- Internal Change: DCCConnection is now an abstract class
59- Internal Change: DCCChatConnection provides the functionality of
60 the old DCCConnection so that DCC FILE support can be added
61- New Scheme Procedure: (bot:sent-to-me? message), checks to see if a
62 message was addressed to the bot. This is better than using
63 bot:match-to-me because the hook will continue to function if the
64 bot's nick changes. The only downside to using it is that there may
65 be an increased overhead of calling more hooks than could be called,
66 but that shouldn't be much of a problem.
67- New Scheme Procedure: (bot:change-command-level command level),
68 changes the level a user command to allow a user of `level' level or
69 above to run it.
70
e171dcce 71Version 2.1.3: Something
72- The flood rate can now be set using !setfloodrate INTEGER. The
73default is two messages per second before the bot will ignore
5c73c60a 74you. (thanks to Björn Gustavsson for requesting this)
4edefeb6 75- The flood rate may also be set from Scheme using (bot:setfloodrate
76integer)
77- A very large crash bug has been fixed. Previously, if an undefined
78command was called, any attempts to call a subsequent command would
79cause the bot to crash. Now the bot doesn't crash.
e171dcce 80
feb33b96 81Version 2.1.2: Llama
82
83- match-to-me and match-not-channel are now bot:match-to-me and
84 bot:match-not-channel. Just use perl -pi -e
85 "s/match-to-me/bot:match-to-me" SCRIPTS (change to match-not-channel
86 for match-not-channel).
ce02032f 87- Each script is now loaded into its own module so namespace clashes
88 should no longer occur
89- New procedure: (bot:load-module INTERFACE-SPEC) will load a "bot
90 module" with the specified INTERFACE-SPEC (e.g. (foo bar)). A bot
91 module is the same as a system module except that you don't use
92 define-module to define it. The %bot:loadpath is searched for
93 INTERFACE-SPEC (when converted to a string) with an extension in
94 %bot:load-extensions. E.g. (foo bar) becomes "foo/bar".
95- New procedure: (bot:use-module INTERFACE-SPEC) is the same as
96 bot:load-module except it will make the exported bindings from
97 INTERFACE-SPEC available in the current-module.
8be9b70e 98- Updated example bot and new example scripts included with the bot.
feb33b96 99
fd7440f1 100Version 2.1.1: foom
feb33b96 101
102- Host masks are now case insensitive when matched. At least one other
103 person thought this was a good idea since IRC is case preserving but
104 not case sensitive.
fd7440f1 105- You can now "name" a hook using an extra arg to bot:addhook. This
106 name can be used to have multiple hooks of the same type with the
107 same regexp. The default name is "DEFAULT" so don't use that as the
108 name for your hooks.
fd7440f1 109- Logging now works again (oops, I didn't realize I broke it until I
110 started to work on DCC).
0b7a49e2 111- DCC CHAT now "works." You can connect to the bot and talk to to it
112 and use Scheme hooks to talk to the user.
113- New hooks: hooks/dcc/chat-begin and hooks/dcc/chat-message. These
114 are called when a new DCC Chat begin and when the user sends a
115 message.
116- New Function: bot:dcc-chat-send TO MESSAGE, sends a MESSAGE to the
117 person at address TO
fed59248 118- New hooks: hooks/send/... where ... is one of action, ctcp, public,
119 or message. These are triggered when the bot does an
120 ACTION, sends a CTCP (_not_ a ctcp-reply), sends a PRIVMSG to a
121 channel, or sends a PRIVMSG to another user, respectively. There
122 will be more send hooks added later.
6530edbf 123- New hooks: hooks/dcc/chat-begin and
124 hooks/dcc/chat-message. chat-begin is called when the chat starts
125 and has one argument: the address (in user!nick@host
126 format). chat-message has two arguments: from (user!nick@host) and
127 message, which is the raw message (since there is no real protocol
128 for DCC). chat-start hooks are matched against the address and
129 chat-message hooks are matched against the text "ADDRESS MESSAGE"
130 where ADDRESS is the sender's address and MESSAGE is the message.
fd7440f1 131
e07b6b46 132Version 2.1.0: Zug Zug
ad529fde 133- Hooks can now be fallthrough or non fallthrough. You can set a hooks
134 priority and whether or not it falls through (i.e. continues hook
135 matching after it has been executed) using two optional args to
136 (bot-addhook). The new args are pri (integer priority) and fallthru
137 (#t or #f) and are at the end. Higher priority hooks are executed
138 before lower priority hooks, and fallthrough hooks are executed
139 before non-fallthrough hooks.
140- The default config is read from ~/.bobotpp/config/default/ or
141 /etc/bobotpp/default/ if the user config is not found. Put your
c7d9fb19 142 default config in either dir. You may also specify a specific config
ad529fde 143 under these dirs using the --config or -c arg to bobotpp (see
144 bobotpp --help for the full list of commands you may use and how to
145 use them).
146- Scripts are now stored in ~/.bobotpp/scripts/ or
ce02032f 147 PREFIX/share/bobotpp/scripts/ (where PREFIX is /usr/local unless you
ad529fde 148 changed it with the --prefix arg to configure). The new function
149 bot-load will take a filename and load it from these dirs, returning
150 #t if the file was loaded and #f if it wasn't. You can modify the
151 search list by appending to %bot-loadpath.
152- bobot-utils.scm is now autoloaded, so you don't need to
153 load it if you want to use its functions.
439869bf 154- Logs are now in ~/.bobotpp/logs/
91dddabd 155- bot-* procedures in Scheme are now bot:*. The old bot-* functions
439869bf 156 are defined as aliases in bobot-utils.scm
e07b6b46 157- You can now use lambda's for new commands (oops, I wasn't protecting
158 the objects from garbage collection)
ad529fde 159
160
2e20c3e1 161Version 2.0: Stable release / CVS merges
162- Merged stuff from Etienne Bernard's dev tree that he was working on
163 before I took over (not much)
164- bot-adduser and bot-addshit now work from Scheme
165
166Version 1.99: Configure joy
167- You can now disable scripting using --disable-scripting or
168 --enable-scripting=no
169- Crypt can also be disabled with --disable-crypt or --enable-crypt=no
170- Old hooks behavior has been restored (new hooks are added to the end
171 of the hooks list and processing does not stop at the first matched
172 hook). The hook behavior will change radically in 2.1.
173
174Version 1.98: Unknown_lamer made a large number of changes
175- Code is now ISO C++ and compiles with GCC 3.1
176- Converted makefile system to use automake
177- configure.ac now requires autoconf 2.50 (this is only a problem if
178 you modify it, but I should be the only one doing that)
179- Transition to new Guile 1.6 API has begun
180- Scripting must always be enabled for now (known "bug")
181- first hook of a given type to match is the only hook executed, all
182 others are ignored. Note that the last hook to be registered is the
183 first in the list!
184
185
186Version 1.97: lots of changes, especially guile's scripting support, which
187 is not yet documented. See in the scripts/ directory for
188 examples, and in Interp.C (the Startup() function) for the
189 list of all available commands.
190
191Version 1.30: Syntax change for "channel =" in bot.conf. See examples/bot.conf.
192 Rewrite of ident/password system. Should be more secure and
193 flexible.