[project @ 2005-06-23 06:20:44 by unknown_lamer]
[clinton/bobotpp.git] / bobot++.info
index 364f5c1..f5d33d9 100644 (file)
@@ -242,10 +242,15 @@ File: bobot++.info,  Node: Configuration File Placement,  Prev: Configuration Fi
 2.2 Configuration File Placement
 ================================
 
-Bobot++ will look in `/etc/bobotpp/default/' for its default config if
-none is specified on the command line. Put the configuration files you
-want to be loaded by default in this directory. If you are not root or
-you want to have your own personal configuration, put it in
+     [ I kinda think this should go before the detailed description of
+     the config file.  I was didn't see it at first and was very
+     frustrated trying to find out _where_ to edit all this wonderful
+     stuff. ]
+
+   Bobot++ will look in `/etc/bobotpp/default/' for its default config
+if none is specified on the command line. Put the configuration files
+you want to be loaded by default in this directory. If you are not root
+or you want to have your own personal configuration, put it in
 `~/.bobotpp/config/default/'.
 
 \1f
@@ -297,7 +302,6 @@ the following command line arguments:
    * `[--debug][-D]' Makes Bobot++ print debugging info and run in the
      foreground
 
-
    The default configuration is read from
 `$HOME/.bobotpp/config/default/' and then `/etc/bobotpp/default/' if
 the user config is not found.
@@ -359,7 +363,6 @@ symbolic levels in Scheme; just use the numeric code.
   3. No deop. The bot will ensure that the user always maintains
      operator status.
 
-
 \1f
 File: bobot++.info,  Node: Automatic Op,  Next: Built-In Commands,  Prev: Protection,  Up: Using the Bot
 
@@ -382,73 +385,109 @@ to use whatever you defined the command char to be in `bot.conf'. If a
 command needs the channel name then you must specify the channel as the
 first argument to the command when private messaging the bot a command.
 
-COMMAND            NEEDS CHANNEL      MIN LEVEL TO USE   DESCRIPTION
-`action' `do'      Yes                USER                Causes the bot
-                                                         to perform the
-                                                         action `do' in
-                                                         the current
-                                                         channel.
-`adduser'                                                
-`addserver'                                              
-`addshit'                                                
-`alias'                                                  
-`ban'                                                    
-`banlist'                                                
-`channels'                                               
-`cycle'                                                  
-`dcclist'                                                
-`deban'                                                  
-`delserver'                                              
-`deluser'                                                
-`delshit'                                                
-`deop'                                                   
-`die'                                                    
-`do'                                                     
-`execute'                                                *Only available
-                                                         if scripting
-                                                         support is
-                                                         enabled*
-`help'                                                   
-`ident'                                                  
-`invite'                                                 
-`join'                                                   
-`keep'                                                   
-`kick'                                                   
-`kickban'                                                
-`load'                                                   
-`loadscript'                                             *Only available
-                                                         if scripting
-                                                         support is
-                                                         enabled*
-`lock'                                                   
-`mode'                                                   
-`msg'                                                    
-`names'                                                  
-`nextserver'                                             
-`nick'                                                   
-`nslookup'                                               
-`op'                                                     
-`part'                                                   
-`password'                                               
-`reconnect'                                              
-`rspymessage'                                            
-`save'                                                   
-`say'                                                    
-`server'                                                 
-`serverlist'                                             
-`setfloodrate'                                           
-`setversion'                                             
-`shitlist'                                               
-`spylist'                                                
-`spymessage'                                             
-`stats'                                                  
-`tban'                                                   
-`tkban'                                                  
-`topic'                                                  
-`unlock'                                                 
-`userlist'                                               
-`who'                                                    
-`whois'                                                  
+COMMAND        NEEDS       MIN LEVEL   DESCRIPTION
+               CHANNEL     TO USE      
+`action' `do'  Yes         USER         Causes the bot to perform the
+                                       action `do' in the current channel.
+`adduser'                              
+`addserver'                            Adds the server specified by HOST
+                                       NAME or IP ADDRESS to the server
+                                       list.
+`addshit'                              
+`alias'                                Makes an alias, and adds the
+                                       function NEW NAME, that will do
+                                       exactly the same command as OLD
+                                       NAME.
+`ban'                                  Bans MASK or NICK from CHANNEL. You
+                                       need to be a trusted user to ban
+                                       with a MASK.
+`banlist'                              
+`channels'                             Prints the channel(s) where the bot
+                                       is currently.
+`cycle'        Yes                     Makes the bot leave and join
+                                       CHANNEL.
+`dcclist'                              Gives the list of all DCC Chat
+                                       connections.
+`deban'        Yes                     Debans MASK or NICK from CHANNEL.
+                                       You need to be a trusted user to
+                                       deban with a MASK.
+`delserver'                            Deletes server from server list
+                                       whose number in the server list is
+                                       SERVER NUMBER.
+`deluser'                              Removes NICK or MASK from the
+                                       userlist.
+`delshit'                              Removes NICK or MASK from the
+                                       shitlist.
+`deop'         Yes                     Deops MASK or NICK on CHANNEL.
+`die'                                  Makes the bot stop immediately.
+`do'                                   
+`execute'                              *Only available if scripting
+                                       support is enabled*
+`help'                                 
+`ident'                                Identifies you on the bot. Note
+                                       that you should not use this
+                                       command in public ...
+`invite'       Yes                     Invites NICK on CHANNEL.
+`join'                                 Makes the bot join CHANNEL.
+`keep'         Yes                     Sets the MODES that the bot will
+                                       keep for CHANNEL.
+`kick'         Yes                     Kicks MASK or NICK out of CHANNEL,
+                                       because of REASON. You need to be a
+                                       trusted user to use a MASK.
+`kickban'      Yes                     Bans then kicks MASK or NICK out of
+                                       CHANNEL, because of REASON. You need
+                                       to be a trusted user to use a MASK.
+`load'                                 Reloads the userlist from disk.
+`loadscript'                           *Only available if scripting
+                                       support is enabled*
+`lock'                                 Locks topic on CHANNEL.
+`mode'         Yes                     Sends MODE STRING as mode for
+                                       CHANNEL.
+`msg'                                  
+`names'        Yes                     Shows the nicknames and status of
+                                       users on CHANNEL.
+`nextserver'                           Makes the bot connect to the next
+                                       server in its server list.
+`nick'                                 Makes the bot use nickname NICK.
+`nslookup'                             Does a nameserver query about NICK
+                                       host, HOST or IP ADDRESS.
+`op'           Yes                     Ops NICK on CHANNEL.
+`part'         Yes                     Makes the bot leave CHANNEL.
+`password'                             Changes your password on the bot.
+                                       Use `NONE' as password if you want
+                                       to clear it. Do not use this
+                                       command in public!
+`reconnect'                            Makes the bot reconnect to its
+                                       current server.
+`rspymessage'                          Removes you from the spy list.
+`save'                                 Saves the userlist.
+`say'          Yes                     Makes the bot say MESSAGE on
+                                       CHANNEL.
+`server'                               Select the server to connect to.
+                                       SERVER NUMBER is the number of the
+                                       server in the serverlist.
+`serverlist'                           Shows the bot's serverlist.
+`setfloodrate'                         
+`setversion'                           
+`shitlist'                             Shows the bot's shitlist.
+`spylist'                              Shows the bot's spylist.
+`spymessage'                           Adds you to the spylist
+`stats'        Yes                     Gives CHANNEL's statistics.
+`tban'         Yes                     Bans NICK or MASK from CHANNEL for
+                                       TIME seconds.
+`tkban'        Yes                     Bans NICK or MASK from CHANNEL for
+                                       TIME seconds, then kicks him/them
+                                       because of REASON.
+`topic'        Yes                     If no TOPICis given, prints
+                                       CHANNEL's topic. Otherwise, the bot
+                                       will change CHANNEL's topic to
+                                       TOPIC.
+`unlock'       Yes                     Makes the bot unlock topic on
+                                       CHANNEL
+`userlist'                             Shows the bot's userlist
+`who'          Yes                     Show your level on CHANNEL
+`whois'        Yes                     Shows information about NICK on
+                                       CHANNEL
 
 \1f
 File: bobot++.info,  Node: Scripting,  Next: Concept Index,  Prev: Using the Bot,  Up: Top
@@ -485,27 +524,30 @@ File: bobot++.info,  Node: Adding New Commands,  Next: Hooks,  Prev: Scripting,
 =======================
 
 Adding a new command is simple. To register a new command use
-`bot:addcommand'. The prototype for `bot:addcommand' is
-`(bot:addcommand name func needs-channel? num-of-args min-level)'. The
-`name' is a string representing the name of the command being added.
-`func' is a function accepting `num-of-args' arguments.
-`needs-channel?' is a bool that is true if the function needs the
-channel name as its first arg, and false otherwise. `num-of-args' is
-the number of args `func' will take and must be within zero (0) and
-twenty (20). `min-level' is one of the *Note Scheme User Levels::. A
-user must be at least a `min-level' user to use the new command. None
-of the arguments are guaranteed to be passed; if they aren't they are
-set to the empty string `""'. An example of a new command would be:
-
-     (define (hello channel name)
-       (if (string=? name "")
-         (bot:say channel "Hello world!")
-         (bot:say channel (string-append "Hello " name "!")))
-
-     (bot:addcommand "hello" hello #t 2 0)
-
-   This will display "Hello World!" if called as `!hello' and "Hello
-World `USER'" if called as `!hello USER'.
+`bot:addcommand'.
+
+ -- Function: bot:addcommand name func needs-channel? num-of-args
+          min-level
+     The NAME is a string representing the name of the command being
+     added.  FUNC is a function accepting NUM-OF-ARGS arguments.
+     NEEDS-CHANNEL? is a bool that is true if the function needs the
+     channel name as its first arg, and false otherwise.  NUM-OF-ARGS
+     is the number of args FUNC will take and must be within zero (0)
+     and twenty (20).  MIN-LEVEL is one of the *Note Scheme User
+     Levels::.  A user must be at least a `min-level' user to use the
+     new command.  None of the arguments are guaranteed to be passed;
+     if they aren't they are set to the empty string `""'.  An example
+     of a new command would be:
+
+          (define (hello channel name)
+            (if (string=? name "")
+              (bot:say channel "Hello world!")
+              (bot:say channel (string-append "Hello " name "!")))
+
+          (bot:addcommand "hello" hello #t 2 0)
+
+     This will display "Hello World!" if called as `!hello' and "Hello
+     World `USER'" if called as `!hello USER'.
 
 \1f
 File: bobot++.info,  Node: Hooks,  Next: Scheme User Levels,  Prev: Adding New Commands,  Up: Scripting
@@ -537,21 +579,23 @@ File: bobot++.info,  Node: Creating a Hook,  Next: Hook Types,  Prev: Hooks,  Up
 4.2.1 Creating a Hook
 ---------------------
 
-To add a new hook you use the function `bot:addhook'. `bot:addhook' is
-prototyped as `(bot:addhook type regex function pri fall name)'. `type'
-specifies the type of hook (the types of hooks are listed in *Note Hook
-Types::). `regex' is a standard regular expression. If `regex' is
-matched, `function' will be called. `function' will take a different
-number of args depending on the hook type. `pri' specifies the priority
-of the hook--higher priority hooks are executed first. This argument is
-optional and defaults to `0'. `fall' is `#t' if the hook is a
-fallthrough hook and `#f' is the hook is not a fallthrough hook. This
-arg is also optional and default to `#t'. `name' is the optional name
-of the hook that defaults to "DEFAULT". If you set the name then you
-can have more than one hook that matches the same regexp, as long as
-they have the same name. E.g. in a log script you could have the
-regexps for the log function all be `".*"' and set their names to
-`"log"' to avoid a conflict with other hooks.
+To add a new hook you use the function `bot:addhook'.
+
+ -- Function: bot:addhook type regex function [pri fall name]
+     TYPE specifies the type of hook (the types of hooks are listed in
+     *Note Hook Types::). REGEX is a standard regular expression. If
+     REGEX is matched, FUNCTION will be called. FUNCTION will take a
+     different number of args depending on the hook type. PRI specifies
+     the priority of the hook--higher priority hooks are executed
+     first. This argument is optional and defaults to `0'. FALL is `#t'
+     if the hook is a fallthrough hook and `#f' is the hook is not a
+     fallthrough hook. This arg is also optional and default to `#t'.
+     NAME is the optional name of the hook that defaults to "DEFAULT".
+     If you set the name then you can have more than one hook that
+     matches the same regexp, as long as they have the same name. E.g.
+     in a log script you could have the regexps for the log function
+     all be `".*"' and set their names to `"log"' to avoid a conflict
+     with other hooks.
 
 \1f
 File: bobot++.info,  Node: Hook Types,  Prev: Creating a Hook,  Up: Hooks
@@ -559,163 +603,87 @@ File: bobot++.info,  Node: Hook Types,  Prev: Creating a Hook,  Up: Hooks
 4.2.2 Hook Types
 ----------------
 
-Here is a list of the various hooks are notes on each one. The general
-format of a hook is:
-
-   * `hooks/name' (this is the Scheme variable name of the hook)
-        - Description of the hook
-
-        - ARG1 ARG2 ... ARGN
-             - ARG1: desc
-
-             - ARG2: desc
-
-             - ...
-
-             - ARGN: desc
-
-   That said, here is the list of available hooks: FIXME: write docs
-
-   * `hooks/action'
-        - This hook is triggered when someone performs an action.
-
-        - FROM, TO, ACTION
-             - FROM: this is the address of the person that performed
-               the action in the form `NICK ! USER @ HOST' (without the
-               spaces).
-
-             - TO: This is the target of the action, which is either a
-               channel or the Bot's nick.
-
-             - ACTION: This is the text of the action. E.g. if someone
-               did `* foobar does baz', then ACTION would be the string
-               `"does baz"'.
-
-   * `hooks/nickname'
-        - Description of the hook
-
-        - # of args
-             - `arg1': desc
-
-   * `hooks/signoff'
-        - Description of the hook
-
-        - # of args
-             - `arg1': desc
-
-   * `hooks/ctcp'
-        - Description of the hook
-
-        - # of args
-             - `arg1': desc
-
-   * `hooks/ctcp-reply'
-        - Description of the hook
-
-        - # of args
-             - `arg1': desc
-
-   * `hooks/disconnect'
-        - Description of the hook
-
-        - # of args
-             - `arg1': desc
-
-   * `hooks/flood'
-        - Description of the hook
+Here is a list of the various hooks funtions and notes on each one. The
+general format of each hook description is as if it was was function to
+be defined, but these describe the function to be passwd to
+`bot:add-hook'.  Do _not_ name your functions these names.
 
-        - # of args
-             - `arg1': desc
+     [ Boy, that's clumsy.  I want to say that the hook/xx functions
+     that are documented below are not funtions that you call.  They
+     are the functions that needs to be passed to bot:addhook for that
+     kind of hook.
 
-   * `hooks/invite'
-        - Description of the hook
+     Still clumsy.  Oh well. ]
 
-        - # of args
-             - `arg1': desc
+   That said, here is the list of available hooks functions.  FIXME:
+write docs
 
-   * `hooks/join'
-        - Description of the hook
+ -- Function: hooks/action from to action
+     This hook is triggered when someone performs an action.  FROM is
+     the address of the person that performed the action in the form
+     `NICK ! USER @ HOST' (without the spaces).  TO is the target of
+     the action, which is either a channel or the Bot's nick.  ACTION
+     is the text of the action. E.g. if someone did `* foobar does
+     baz', then ACTION would be the string `"does baz"'.
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/nickname old-nick new-nick
+     This hook gets called when someone changes thir nickname from
+     OLD-NICK to NEW-NICK.
 
-   * `hooks/kick'
-        - Description of the hook
+ -- Function: hooks/signoff nick rest
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/ctcp nick to command rest
 
-   * `hooks/part'
-        - Description of the hook
+ -- Function: hooks/ctcp-reply nick command rest
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/disconnect ?
+     [ Is this ever called?  I can't find it in the source ]
 
-   * `hooks/mode'
-        - Description of the hook
+ -- Function: hooks/flood nick
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/invite nick channel
 
-   * `hooks/message'
-        - Description of the hook
+ -- Function: hooks/join nick channel
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/kick target from channel reason
 
-   * `hooks/notice'
-        - Description of the hook
+ -- Function: hooks/leave nick channel
+ -- Function: hooks/part nick channel
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/mode nick channel modes
 
-   * `hooks/public'
-        - Description of the hook
+ -- Function: hooks/message from message
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/notice nick message
 
-   * `hooks/public-notice'
-        - Description of the hook
+ -- Function: hooks/public from to message
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/public-notice nick to message
 
-   * `hooks/raw'
-        - Description of the hook
+ -- Function: hooks/raw raw-message
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/timer time
+     This hook seems to be called once a minute.  TIME is in `hh:mm'
+     format.
 
-   * `hooks/timer'
-        - Description of the hook
+ -- Function: hooks/topic nick channel new-topic
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/send/public mynick dest message
 
-   * `hooks/topic'
-        - Description of the hook
+ -- Function: hooks/send/message botnick message
 
-        - # of args
-             - `arg1': desc
+ -- Function: hooks/send/action mynick to message
 
-   * `hooks/dcc/begin'
-        - This hook is triggered when a user begins a DCC CHAT with the
-          bot.
+ -- Function: hooks/send/ctcp mynick to command message
 
-        - FROM
-             - FROM: This is the user's address in the form
-               `nick!user@host'.
+ -- Function: hooks/dcc/chat-begin from
+     This hook is triggered when a user begins a DCC CHAT with the bot.
+     FROM is the user's address in the form `nick!user@host'.
 
-   * `hooks/dcc/message'
-        - This hook is triggered when a user sends a message to the bot
-          through a DCC CHAT
-
-        - FROM MESSAGE
-             - FROM: This is the user's address in the form
-               `nick!user@host'.
-
-             - MESSAGE: This is the message the user sent to the bot.
+ -- Function: hooks/dcc/chat-message from message
+     This hook is triggered when a user sends a message to the bot
+     through a DCC CHAT FROM is the user's address in the form
+     `nick!user@host'.  MESSAGE is the message the user sent to the bot.
 
 \1f
 File: bobot++.info,  Node: Scheme User Levels,  Next: Sending Messages,  Prev: Hooks,  Up: Scripting
@@ -764,7 +732,18 @@ File: bobot++.info,  Node: High Level Message Functions,  Next: Low Level Messag
 4.4.1 "High Level" Message Functions
 ------------------------------------
 
-...
+ -- Function: bot:say channel message
+     Send a public or private MESSAGE to CHANNEL.
+
+     Sends a normal text message, as if a user had typed it in.  The
+     DEST can be a nickname or a channel.
+
+ -- Function: bot:action channel message
+     Send an "action" type  MESSAGE to CHANNEL
+
+ -- Function: bot:msg nick message
+     The same as if a user typed `/msg nick message' to their IRC
+     client.
 
 \1f
 File: bobot++.info,  Node: Low Level Message Functions,  Prev: High Level Message Functions,  Up: Sending Messages
@@ -778,11 +757,10 @@ before using these. If you have no idea what these do, read rfc 2812
 (IRC Client Protocol) and CTCP spec. These functions all return
 `*unspecified*' always, so don't use the return value for anything.
 
-   * `bot:send-CTCP to command message' `to' is the target of your CTCP
-     message, `command' is the CTCP command, and `message' is the
-     message (or arguments) of the command. Make sure to
-     `bot:ctcp-quote' the message!
-
+ -- Function: bot:send-CTCP to command message
+     `to' is the target of your CTCP message, `command' is the CTCP
+     command, and `message' is the message (or arguments) of the
+     command. Make sure to `bot:ctcp-quote' the message!
 
 \1f
 File: bobot++.info,  Node: Misc Scripting Stuff,  Prev: Sending Messages,  Up: Scripting
@@ -797,6 +775,200 @@ might want to know.
 bot:exit-hook THUNK' where THUNK is an argumentless procedure (a
 thunk). When the bot exits your thunk will be called.
 
+     [ I didn't know where to put any of these, so I jsut stuck them in
+     here.
+
+     There probably needs to be several sections added, like dealing
+     with users (kicking, added, etc), dealing with the bot (channels,
+     nickname of the bot, etc), server issues (serverlist), useful
+     tools (nslookup, whois), and do on. ]
+
+ -- Function: bot:adduser nick-or-mask cbannel-mask level prot auto-op
+     Adds an user to the userlist, for a `nick!user@host' matching the
+     one given, on a channel matching the CHANNELMASK given.
+
+     The LEVEL can be:      The PROT can be:       The AUTO-OP can be:
+     0 - No level           0 - No protection      0 - No auto-op
+     1 - User               1 - No ban             1 - Op on join
+     2 - Trusted User       2 - No kick            
+     3 - Friend             3 - No deop            
+     4 - Master                                    
+
+
+ -- Function: bot:addserver hostname ip-address [portnumber]
+     Adds the server specified by HOSTNAME or IP-ADDRESS to the server
+     list.
+
+ -- Function: bot:addshit nick-or-mask channel-mask level [time reason]
+     Adds an user to the shitlist, for a nick!user@host matching the
+     one given, on a channel matching the CHANNELMASK given.
+
+          The LEVEL can be:
+            0 - No shit
+            1 - No op
+            2 - Kick and Ban on join
+            3 - Kick and Ban on join, no deban
+
+
+ -- Function: bot:ban channel mask-or-nick
+     Bans MASK or NICK from CHANNEL. You need to be a trusted user to
+     ban with a MASK.
+
+ -- Function: bot:change-command-level nick-or-mask channel-mask
+          new-level
+     Gives NICK or MASK level NEW-LEVEL on channel(s) CHANNEL-MASK.
+     Note that you can not change level for someone whose level is
+     greater than yours, and that you can not give a level greater than
+     yours.
+
+ -- Function: bot:cycle channel
+     Makes the bot leave and join CHANNEL.
+
+ -- Function: bot:deban channel mask-or-nick
+     Debans MASK or NICK from CHANNEL. You need to be a trusted user to
+     deban with a MASK.
+
+ -- Function: bot:delserver server-number
+     Deletes server from server list whose number in the server list is
+     SERVER-NUMBER
+
+ -- Function: bot:deluser nick-or-mask channel-mask
+     Removes NICK or MASK from the userlist.
+
+ -- Function: bot:delshit nick-or-mask channel-mask
+     Removes NICK or MASK from the shitlist.
+
+ -- Function: bot:deop channel mask-or-nick
+     Deops MASK or NICK on CHANNEL.
+
+ -- Function: bot:die reason
+     Makes the bot stop immediately.
+
+ -- Function: bot:do ?
+
+ -- Function: bot:invite channel nick
+     Invites NICK on CHANNEL.
+
+ -- Function: bot:join channel
+     Makes the bot join CHANNEL.
+
+ -- Function: bot:keep channel modes
+     Sets the MODES that the bot will keep for CHANNEL.  See also STATS.
+
+ -- Function: bot:kick channel mask-or-nick [reason]
+     Kicks MASK or NICK out of CHANNEL, because of REASON.  You need to
+     be a trusted user to use a MASK.
+
+ -- Function: bot:kickban channel mask-or-nick [reason]
+     Bans then kicks MASK or NICK out of CHANNEL, because of REASON.
+     You need to be a trusted user to use a MASK.
+
+ -- Function: bot:lock channel
+     Locks topic on CHANNEL.
+
+ -- Function: bot:logport
+     [ Probably returns the log port? ]
+
+ -- Function: bot:mode channel mode-string
+     Sends MODE-STRING as mode for CHANNEL.
+
+ -- Function: bot:nextserver
+     Makes the bot connect to the next server in its server list.
+
+ -- Function: bot:nick nick
+     Makes the bot use nickname NICK.
+
+ -- Function: bot:op channel nick
+     Ops NICK on CHANNEL.
+
+ -- Function: bot:part channel
+     Makes the bot leave CHANNEL.
+
+ -- Function: bot:reconnect
+     Makes the bot reconnect to its current server.
+
+ -- Function: bot:server server-number
+     Select the server to connect to. SERVER-NUMBER is the number of
+     the server in the serverlist.
+
+ -- Function: bot:setfloodrate ?
+
+ -- Function: bot:setversion ?
+
+ -- Function: bot:tban channel nick-or-mask time
+     Bans NICK or MASK from CHANNEL for TIME seconds.
+
+ -- Function: bot:tkban channel nick-or-mask time [reason]
+     Bans NICK or MASK from CHANNEL for TIME seconds, then kicks
+     him/them because of REASON.
+
+ -- Function: bot:topic channel topic
+     If no TOPIC is given, prints CHANNEL's topic. Otherwise, the bot
+     will change CHANNEL's topic to TOPIC.
+
+ -- Function: bot:unlock channel
+     Makes the bot unlock topic on CHANNEL.
+
+ -- Function: bot:getnickname
+     [ Gets the bot's nickname? ]
+
+ -- Function: bot:getserver
+
+ -- Function: bot:getserverlist
+
+ -- Function: bot:flush
+     [ Flushes the socket to the server? ]
+
+ -- Function: bot:flushport
+     [ Flushes the log port? ]
+
+ -- Function: bot:random ?
+     [ Returns a random number?  What range?  Why? ]
+
+ -- Function: bot:delcommand
+     [ Probably deletes a command added with `bot:addcommand' ? ]
+
+ -- Function: bot:addtimer ? ?
+
+ -- Function: bot:deltimer ?
+
+ -- Function: bot:dcc-chat-send ? ?
+
+     [ And what about the stuff defined in `bobot-utils.scm' ? I just
+     added it here so it could be somewhere.  There should also be a
+     section dealing with modules.  How to use them.  What module
+     scripts are in.  What module bobot++ provided primites are in.
+     And so on. ]
+
+ -- Function: bot:log . messages
+     Write as many MESSAGES as you want to the log.  If the arg is a
+     thunk it will be executed and it's output will be written to the
+     log.
+
+ -- Function: bot:load file
+
+ -- Function: bot:load-module module-spec
+
+ -- Function: bot:use-module module-spec
+
+ -- Function: bot:match-not-channel regex
+     match-not-channel adds a prefix regex to your REGEX so it doesn't
+     match the sender or channel in a PUBLIC message
+
+ -- Function: bot:match-to-me regex
+     match-to-me matches text that was addressed to the bot with a ':',
+     ',',  or nothing after the bot name.
+
+ -- Function: bot:sent-to-me? message
+
+ -- Function: bot:ctcp-quote message
+     Returns the CTCP quoted message Input _MUST NOT_ contain the
+     trailing `\r\n' (it is added by the message sending code).
+
+ -- Variable: %bot:loadpath
+
+ -- Function: %bot:load-extensions
+
 \1f
 File: bobot++.info,  Node: Concept Index,  Next: Function Index,  Prev: Scripting,  Up: Top
 
@@ -817,8 +989,146 @@ Function Index
 \0\b[index\0\b]
 * Menu:
 
-* addcommand:                            Adding New Commands.   (line 6)
-* addhook:                               Creating a Hook.       (line 6)
+* %bot:load-extensions:                  Misc Scripting Stuff.
+                                                              (line 206)
+* bot:action:                            High Level Message Functions.
+                                                              (line  13)
+* bot:addcommand:                        Adding New Commands. (line  11)
+* bot:addhook:                           Creating a Hook.     (line   9)
+* bot:addserver:                         Misc Scripting Stuff.
+                                                              (line  34)
+* bot:addshit:                           Misc Scripting Stuff.
+                                                              (line  38)
+* bot:addtimer:                          Misc Scripting Stuff.
+                                                              (line 167)
+* bot:adduser:                           Misc Scripting Stuff.
+                                                              (line  22)
+* bot:ban:                               Misc Scripting Stuff.
+                                                              (line  49)
+* bot:change-command-level:              Misc Scripting Stuff.
+                                                              (line  54)
+* bot:ctcp-quote:                        Misc Scripting Stuff.
+                                                              (line 200)
+* bot:cycle:                             Misc Scripting Stuff.
+                                                              (line  60)
+* bot:dcc-chat-send:                     Misc Scripting Stuff.
+                                                              (line 171)
+* bot:deban:                             Misc Scripting Stuff.
+                                                              (line  63)
+* bot:delcommand:                        Misc Scripting Stuff.
+                                                              (line 164)
+* bot:delserver:                         Misc Scripting Stuff.
+                                                              (line  67)
+* bot:delshit:                           Misc Scripting Stuff.
+                                                              (line  74)
+* bot:deltimer:                          Misc Scripting Stuff.
+                                                              (line 169)
+* bot:deluser:                           Misc Scripting Stuff.
+                                                              (line  71)
+* bot:deop:                              Misc Scripting Stuff.
+                                                              (line  77)
+* bot:die:                               Misc Scripting Stuff.
+                                                              (line  80)
+* bot:do:                                Misc Scripting Stuff.
+                                                              (line  83)
+* bot:flush:                             Misc Scripting Stuff.
+                                                              (line 155)
+* bot:flushport:                         Misc Scripting Stuff.
+                                                              (line 158)
+* bot:getnickname:                       Misc Scripting Stuff.
+                                                              (line 148)
+* bot:getserver:                         Misc Scripting Stuff.
+                                                              (line 151)
+* bot:getserverlist:                     Misc Scripting Stuff.
+                                                              (line 153)
+* bot:invite:                            Misc Scripting Stuff.
+                                                              (line  85)
+* bot:join:                              Misc Scripting Stuff.
+                                                              (line  88)
+* bot:keep:                              Misc Scripting Stuff.
+                                                              (line  91)
+* bot:kick:                              Misc Scripting Stuff.
+                                                              (line  94)
+* bot:kickban:                           Misc Scripting Stuff.
+                                                              (line  98)
+* bot:load:                              Misc Scripting Stuff.
+                                                              (line 184)
+* bot:load-module:                       Misc Scripting Stuff.
+                                                              (line 186)
+* bot:lock:                              Misc Scripting Stuff.
+                                                              (line 102)
+* bot:log:                               Misc Scripting Stuff.
+                                                              (line 179)
+* bot:logport:                           Misc Scripting Stuff.
+                                                              (line 105)
+* bot:match-not-channel:                 Misc Scripting Stuff.
+                                                              (line 190)
+* bot:match-to-me:                       Misc Scripting Stuff.
+                                                              (line 194)
+* bot:mode:                              Misc Scripting Stuff.
+                                                              (line 108)
+* bot:msg:                               High Level Message Functions.
+                                                              (line  16)
+* bot:nextserver:                        Misc Scripting Stuff.
+                                                              (line 111)
+* bot:nick:                              Misc Scripting Stuff.
+                                                              (line 114)
+* bot:op:                                Misc Scripting Stuff.
+                                                              (line 117)
+* bot:part:                              Misc Scripting Stuff.
+                                                              (line 120)
+* bot:random:                            Misc Scripting Stuff.
+                                                              (line 161)
+* bot:reconnect:                         Misc Scripting Stuff.
+                                                              (line 123)
+* bot:say:                               High Level Message Functions.
+                                                              (line   7)
+* bot:send-CTCP:                         Low Level Message Functions.
+                                                              (line  13)
+* bot:sent-to-me?:                       Misc Scripting Stuff.
+                                                              (line 198)
+* bot:server:                            Misc Scripting Stuff.
+                                                              (line 126)
+* bot:setfloodrate:                      Misc Scripting Stuff.
+                                                              (line 130)
+* bot:setversion:                        Misc Scripting Stuff.
+                                                              (line 132)
+* bot:tban:                              Misc Scripting Stuff.
+                                                              (line 134)
+* bot:tkban:                             Misc Scripting Stuff.
+                                                              (line 137)
+* bot:topic:                             Misc Scripting Stuff.
+                                                              (line 141)
+* bot:unlock:                            Misc Scripting Stuff.
+                                                              (line 145)
+* bot:use-module:                        Misc Scripting Stuff.
+                                                              (line 188)
+* hooks/action:                          Hook Types.          (line  22)
+* hooks/ctcp:                            Hook Types.          (line  36)
+* hooks/ctcp-reply:                      Hook Types.          (line  38)
+* hooks/dcc/chat-begin:                  Hook Types.          (line  80)
+* hooks/dcc/chat-message:                Hook Types.          (line  84)
+* hooks/disconnect:                      Hook Types.          (line  40)
+* hooks/flood:                           Hook Types.          (line  43)
+* hooks/invite:                          Hook Types.          (line  45)
+* hooks/join:                            Hook Types.          (line  47)
+* hooks/kick:                            Hook Types.          (line  49)
+* hooks/leave:                           Hook Types.          (line  51)
+* hooks/message:                         Hook Types.          (line  56)
+* hooks/mode:                            Hook Types.          (line  54)
+* hooks/nickname:                        Hook Types.          (line  30)
+* hooks/notice:                          Hook Types.          (line  58)
+* hooks/part:                            Hook Types.          (line  52)
+* hooks/public:                          Hook Types.          (line  60)
+* hooks/public-notice:                   Hook Types.          (line  62)
+* hooks/raw:                             Hook Types.          (line  64)
+* hooks/send/action:                     Hook Types.          (line  76)
+* hooks/send/ctcp:                       Hook Types.          (line  78)
+* hooks/send/message:                    Hook Types.          (line  74)
+* hooks/send/public:                     Hook Types.          (line  72)
+* hooks/signoff:                         Hook Types.          (line  34)
+* hooks/timer:                           Hook Types.          (line  66)
+* hooks/topic:                           Hook Types.          (line  70)
 
 \1f
 File: bobot++.info,  Node: Variable Index,  Prev: Function Index,  Up: Top
@@ -829,29 +1139,10 @@ Variable Index
 \0\b[index\0\b]
 * Menu:
 
+* %bot:loadpath:                         Misc Scripting Stuff.
+                                                              (line 204)
 * exit-hook:                             Misc Scripting Stuff.
                                                               (line   9)
-* hooks/action:                          Hook Types.          (line  23)
-* hooks/ctcp:                            Hook Types.          (line  50)
-* hooks/ctcp-reply:                      Hook Types.          (line  56)
-* hooks/dcc/begin:                       Hook Types.          (line 146)
-* hooks/dcc/message:                     Hook Types.          (line 154)
-* hooks/disconnect:                      Hook Types.          (line  62)
-* hooks/flood:                           Hook Types.          (line  68)
-* hooks/invite:                          Hook Types.          (line  74)
-* hooks/join:                            Hook Types.          (line  80)
-* hooks/kick:                            Hook Types.          (line  86)
-* hooks/message:                         Hook Types.          (line 104)
-* hooks/mode:                            Hook Types.          (line  98)
-* hooks/nickname:                        Hook Types.          (line  38)
-* hooks/notice:                          Hook Types.          (line 110)
-* hooks/part:                            Hook Types.          (line  92)
-* hooks/public:                          Hook Types.          (line 116)
-* hooks/public-notice:                   Hook Types.          (line 122)
-* hooks/raw:                             Hook Types.          (line 128)
-* hooks/signoff:                         Hook Types.          (line  44)
-* hooks/timer:                           Hook Types.          (line 134)
-* hooks/topic:                           Hook Types.          (line 140)
 * user-friend:                           Scheme User Levels.  (line   6)
 * user-master:                           Scheme User Levels.  (line   6)
 * user-none:                             Scheme User Levels.  (line   6)
@@ -870,24 +1161,24 @@ Node: server syntax\7f3948
 Node: channel syntax\7f4812
 Node: bot.users\7f5655
 Node: Configuration File Placement\7f6558
-Node: Using the Bot\7f7036
-Node: Starting the Bot\7f7286
-Node: User Levels\7f8630
-Node: Protection\7f10086
-Node: Automatic Op\7f10695
-Node: Built-In Commands\7f10984
-Node: Scripting\7f15518
-Node: Adding New Commands\7f16483
-Node: Hooks\7f17750
-Node: Creating a Hook\7f18729
-Node: Hook Types\7f19877
-Node: Scheme User Levels\7f23360
-Node: Sending Messages\7f24494
-Node: High Level Message Functions\7f25110
-Node: Low Level Message Functions\7f25333
-Node: Misc Scripting Stuff\7f26095
-Node: Concept Index\7f26519
-Node: Function Index\7f26738
-Node: Variable Index\7f27037
+Node: Using the Bot\7f7260
+Node: Starting the Bot\7f7510
+Node: User Levels\7f8853
+Node: Protection\7f10309
+Node: Automatic Op\7f10917
+Node: Built-In Commands\7f11206
+Node: Scripting\7f18185
+Node: Adding New Commands\7f19150
+Node: Hooks\7f20473
+Node: Creating a Hook\7f21452
+Node: Hook Types\7f22635
+Node: Scheme User Levels\7f25478
+Node: Sending Messages\7f26612
+Node: High Level Message Functions\7f27228
+Node: Low Level Message Functions\7f27851
+Node: Misc Scripting Stuff\7f28619
+Node: Concept Index\7f35195
+Node: Function Index\7f35414
+Node: Variable Index\7f45258
 \1f
 End Tag Table