From 1f7812dd6346a5b86b57a5c902b8045025951342 Mon Sep 17 00:00:00 2001 From: clinton Date: Thu, 13 Nov 2008 00:47:39 +0000 Subject: [PATCH] Remove generated texinfo from repository --- bobot++.info | 1801 -------------------------------------------------- 1 file changed, 1801 deletions(-) delete mode 100644 bobot++.info diff --git a/bobot++.info b/bobot++.info deleted file mode 100644 index 5e5ee74..0000000 --- a/bobot++.info +++ /dev/null @@ -1,1801 +0,0 @@ -This is bobot++.info, produced by makeinfo version 4.8 from -bobot++.texinfo. - - This file documents Bobot++ by Clinton Ebadi and Etienne Bernard -(The original author who no longer works on the program). - - Copyright 2002,2004,2005 Clinton Ebadi - - Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with no Front-Cover Texts, and with no Back-Cover -Texts. - - -File: bobot++.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) - - This document describes Bobot++ by Clinton Ebadi and Etienne Bernard -(The original author who no longer works on the program). - - This document applies to version 2.2 of the program named Bobot++. - - Copyright 2002,2004,2005 Clinton Ebadi - - Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with no Front-Cover Texts, and with no Back-Cover -Texts. - -* Menu: - -* Introduction:: -* Configuration:: -* Using the Bot:: -* Scripting:: -* Concept Index:: -* Function Index:: -* Variable Index:: - - --- The Detailed Node Listing --- - -Configuration - -* Configuration File Placement:: -* Configuration Files:: - -Configuration Files - -* bot.conf:: -* bot.users:: -* bot.init:: -* bot.autoexec:: -* bot.shit:: - -bot.conf - -* server syntax:: -* channel syntax:: - -Using Bobot++ - -* Starting the Bot:: -* Concepts:: -* Built-In Commands:: - -Concepts - -* User List:: -* Shit List:: -* Spy List:: -* Levels:: - -Levels - -* User Levels:: -* Protection:: -* Automatic Op:: -* Shit Levels:: - -Built-In Commands - -* Bot Control Commands:: -* Message Commands:: -* Channel Control:: -* Spylist Commands:: -* User List Commands:: -* Server List Commands:: -* Shit List Commands:: -* Channel Info:: -* Scripting Commands:: -* Authentication Commands:: -* Miscellaneous Commands:: - -Scripting - -* Adding New Commands:: -* Hooks:: -* Sending Messages:: -* Misc Scripting Stuff:: -* Scheme Commands:: -* Query Functions:: - -Hooks - -* Creating a Hook:: -* Hook Types:: - -Hook Types - -* Received Message Hooks:: -* Sent Message Hooks:: -* DCC CHAT Hooks:: -* Miscellaneous Hooks:: - -Sending Messages - -* High Level Message Functions:: -* Low Level Message Functions:: - -Misc. Scripting Stuff - -* Scheme Commands:: -* Query Functions:: - - -File: bobot++.info, Node: Introduction, Next: Configuration, Prev: Top, Up: Top - -1 Introduction -************** - -Bobot++ is a powerful IRC bot written in C++. It can be used standalone -as a channel maintenence bot, or extended to do almost anything using -Scheme scripts. - - FIXME: Fill the intro in more? - - -File: bobot++.info, Node: Configuration, Next: Using the Bot, Prev: Introduction, Up: Top - -2 Configuration -*************** - -Bobot++ is easy to configure. See the `examples' directory for an -example configuration. - - The main configuration file is `bot.conf'. There are several -auxiliary configuration files (a user list, aliases file, ban list, and -a script autoexec). - -* Menu: - -* Configuration File Placement:: -* Configuration Files:: - - -File: bobot++.info, Node: Configuration File Placement, Next: Configuration Files, Prev: Configuration, Up: Configuration - -2.1 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 -`~/.bobotpp/config/default/'. - - -File: bobot++.info, Node: Configuration Files, Prev: Configuration File Placement, Up: Configuration - -2.2 Configuration Files -======================= - -* Menu: - -* bot.conf:: -* bot.users:: -* bot.init:: -* bot.autoexec:: -* bot.shit:: - - -File: bobot++.info, Node: bot.conf, Next: bot.users, Prev: Configuration Files, Up: Configuration Files - -2.2.1 bot.conf --------------- - -`bot.conf' contains key value pairs separated by `='. - - ` = ' - - Comments are started with a `#' and cause the entire line to be -ignored. _Note that this only works when the `#' is the first character -of the line_. - - bot.conf is the main configuration file for a Bobot++. The available -configuration variables are listed below in the format "VARIABLE -: description" - - A few of the options have more complex syntax, they are documented in -their own subsections. - -* Menu: - -* server syntax:: -* channel syntax:: - - * MAXNICKLENGTH <9>: The maximum length a valid nickname may be. - This should be set before setting the bot's nickname if it will be - more than nine characters long. Most IRC servers support nicknames - longer than nine characters, but Bobot++ still follows the old spec - and defaults to nine. - - * NICKNAME : The nickname of the bot (NICK is an alias for - NICKNAME) - - * USERNAME : The IRC username of the bot - - * CMDCHAR : The character that prefixes commands given to the bot - (COMMAND is an alias for CMDCHAR) - - * IRCNAME : The IRC name (or 'real name') of the bot - (REALNAME is an alias for IRCNAME) - - * USERLIST : Name of the file where the userlist is stored - - * AUTOEXECFILE : Name of the file containing Scheme - code to be executed when the bot starts (only used if the bot is - compiled with scripting support) - - * INITFILE : Name of the file containing the default - command aliases - - * SHITLIST : Name of the file where the shitlist (ban - list) is stored - - * LOGFILE <$LOGDIR/bot.log>: Location of the bot logfile (set this - to `/dev/null' to disable logging). - - * SERVER : This specifies the server to which the bot will - connect. Note that this has a special syntax *note server syntax::. - - * CHANNEL : This specifies the channels the bot will join when - it starts up. This has a special syntax *note channel syntax::. - - - -File: bobot++.info, Node: server syntax, Next: channel syntax, Prev: bot.conf, Up: bot.conf - -2.2.1.1 server syntax -..................... - -The server syntax in `bot.conf' allows you to specify an alternate port -to connect on, and a password to send the server. - - You may use more than one server line; Bobot++ will attempt to -connect to the first one, and will connect to the next one in the list -if it fails. The bot will continue cycling through the server list -until it is able to connect to one. There is a command (`!cycle') to -make the bot to cycle servers. - - SERVER = SERVER_NAME [PORT [PASSWORD]] - - This will make Bobot++ attempt to connect to SERVER_NAME on port -PORT with the password PASSWORD. SERVER_NAME should be the address of -the server. PORT and PASSWORD are optional. - - -File: bobot++.info, Node: channel syntax, Prev: server syntax, Up: bot.conf - -2.2.1.2 channel syntax -...................... - -The channel syntax in `bot.conf' allows you to specify the initial -modes the bot should set on a channel, the modes the bot should -maintain, and a key if the channel needs it. - - You may have any number of channel lines. When Bobot++ starts it will -attempt to join and gain operator status in every channel listed. - - CHANNEL = NAME:INITIAL_MODES:MODES_TO_KEEP:CHANNEL_KEY - - The bot will join NAME and set the channel modes to INITIAL_MODES -(e.g. "nt") if it is able to gain operator status. It will then -maintain MODES_TO_KEEP. If the channel requires a key to enter simply -set CHANNEL_KEY. Every argument except for NAME is optional. - - A few example lines: - - CHANNEL = #foo:nt:nt:bar - - The bot will join `#foo' with the channel key `bar' and will then -maintain the modes `nt'. - - CHANNEL = #bar::: - - The bot will join `#bar' and will not set any modes nor will it -attempt to maintain any modes. - - -File: bobot++.info, Node: bot.users, Next: bot.init, Prev: bot.conf, Up: Configuration Files - -2.2.2 bot.users (User List) ---------------------------- - -`bot.users' is the default file name of the userlist. It may be changed -in `bot.conf' via the USERLIST option. *You must add an entry for -yourself manually.* You will probably want to add other entries using -the IRC command interface as it is more intuitive than editing the file -by hand. - - The file contains lines with the format: - - `HOST_MASK:CHANNEL_MASK:LEVEL:PROTECTION:AUTO-OP:EXPIRATION:PASSWORD' - - * HOST_MASK is the host mask (e.g. `*!*username - .domain.com') of the user - - * CHANNEL_MASK is a channel mask of the channels that the user has - priviliges to use the bot in (e.g. `*' for all channels, `#*' for - all non-local channel, `#foo*' for all channels starting with - "foo," `#bar' for channel "#bar" only, etc.) - - * LEVEL is the user level of the user (*Note User Levels::). - - * PROTECTION is the protection level of the user (*Note - Protection::). - - * AUTO-OP is set to control whether a user is automatically given - operator priviliges on channel entry (*Note Automatic Op::). - - * EXPIRATION is the UNIX timestamp of when the user entry becomes - invalid. Setting this to -1 will make the entry permanent. - - * PASSWORD is the password the user must supply to the bot to - authenticate. This can be set to `*NONE*' to not have a password. - - - -File: bobot++.info, Node: bot.init, Next: bot.autoexec, Prev: bot.users, Up: Configuration Files - -2.2.3 bot.init (Command Aliases) --------------------------------- - -This file stores a list of IRC command aliases. The filename may be -changed in `bot.conf' via the INITFILE option. You use this file to set -up aliases for IRC commands, e.g. to make `!a' call `!adduser'. This -way you can save typing for commonly used commands. - - The format of a line in the file is: ALIAS COMMAND - - This will make ALIAS call COMMAND. e.g. `t topic' will make `!t New -Topic' set the current channel's topic to "New Topic," just as if you -had used `!topic New Topic'. - - -File: bobot++.info, Node: bot.autoexec, Next: bot.shit, Prev: bot.init, Up: Configuration Files - -2.2.4 bot.autoexec (Scheme Init File) -------------------------------------- - -This file is only used when Bobot++ is compiled with scripting support. -The name of the autoexec file can be changed in `bot.conf' via the -AUTOEXECFILE option. - - The contents of this file are evaluated by Guile when the bot -starts. You can use this to do things like loading a few default -modules when the bot starts. - - -File: bobot++.info, Node: bot.shit, Prev: bot.autoexec, Up: Configuration Files - -2.2.5 bot.shit (Ban/Shit List) ------------------------------- - -This file stores the ban list. The name may be changed in `bot.conf' -via the SHITLIST option. You will most likely want to use the IRC -command interface to edit this file instead of editing it directly. - - The file contains lines in the form: - - `HOST_MASK:CHANNEL_MASK:LEVEL:EXPIRATION:REASON' - - * HOST_MASK is the host mask (e.g. `*!*username - .domain.com') of the user - - * CHANNEL_MASK is a channel mask of the channels that the user is - banned on (e.g. `*' for all channels, `#*' for all non-local - channel, `#foo*' for all channels starting with "foo," `#bar' for - channel "#bar" only, etc. - - * LEVEL is a number specifying if the bot should not allow the user - to gain ops, to kick the user upon joining, or to prevent the user - from being debanned by other users. *Note Shit Levels:: for - information on the available levels. - - * EXPIRATION is the UNIX timestamp of when the shit entry becomes - invalid. This may be set to -1 to make it valid forever. - - * REASON is text that is sent to the user when they are kicked or - banned from the channel. - - - -File: bobot++.info, Node: Using the Bot, Next: Scripting, Prev: Configuration, Up: Top - -3 Using Bobot++ -*************** - -Using Bobot++ is easy. This chapter covers starting the bot, a few -Bobot++ specific concepts, and using the built-in commands of the bot. - -* Menu: - -* Starting the Bot:: -* Concepts:: -* Built-In Commands:: - - -File: bobot++.info, Node: Starting the Bot, Next: Concepts, Prev: Using the Bot, Up: Using the Bot - -3.1 Starting the Bot -==================== - -The bot is usually installed with the binary name `bobotpp'. It accepts -the following command line arguments. - - * `[--help][-h]' - Shows detailed help and exits - - * `[--version][-v]' - Shows version information and exits - - * `[--no-background][-b]' - Run bobot++ in the foreground - - * `[--config-file file][-f]' - Use file instead of `bot.conf' - - * `[--config-dir dir][-d]' - Use dir as dir to load config file from - - * `[--config dir][-c]' - Search your config path (defaults to - `$HOME/.bobotpp/config/' and then `/etc/bobotpp/') for dir and - then loads your config data using dir - - * `[--sys-config dir][-s]' - Looks for config in `/etc/bobotpp/dir'. - Note that the user dir is still searched first - - * `[--user-config dir][-u]' - Looks for config in - `$HOME/.bobotpp/config/dir/'. Note that the system dir is still - searched after this if dir is not found. - - * `[--debug][-D]' Makes Bobot++ print debugging info and run in the - foreground - - * `[--debug-scripts][-S]' Enables the Guile debugging evaluator for - verbose script errors and backtraces while still running the bot - in the background. - - The default configuration is read from -`$HOME/.bobotpp/config/default/' and then `/etc/bobotpp/default/' if -the user config is not found. - - The bot defaults to running in the background as a daemon. - - -File: bobot++.info, Node: Concepts, Next: Built-In Commands, Prev: Starting the Bot, Up: Using the Bot - -3.2 Concepts -============ - -There are a few general concepts that a user of Bobot++ should know -about. - -* Menu: - -* User List:: -* Shit List:: -* Spy List:: -* Levels:: - - -File: bobot++.info, Node: User List, Next: Shit List, Prev: Concepts, Up: Concepts - -3.2.1 User List ---------------- - - -File: bobot++.info, Node: Shit List, Next: Spy List, Prev: User List, Up: Concepts - -3.2.2 Shit List ---------------- - - -File: bobot++.info, Node: Spy List, Next: Levels, Prev: Shit List, Up: Concepts - -3.2.3 Spy List --------------- - - -File: bobot++.info, Node: Levels, Prev: Spy List, Up: Concepts - -3.2.4 Levels ------------- - -* Menu: - -* User Levels:: -* Protection:: -* Automatic Op:: -* Shit Levels:: - - -File: bobot++.info, Node: User Levels, Next: Protection, Prev: Levels, Up: Levels - -3.2.4.1 User Levels -................... - -There are several user levels available in Bobot++ to provide gradated -access to commands. `!adduser' and `bot.users' use the numeric code; -Scheme uses the textual name for the level. By default (if the user is -not found in the userlist) a user has access to commands with the level -`bot:user-none'. - - 0. `bot:user-none' - No *built-in* commands may be executed _by - default_ (commands may be added from Scheme that can be executed - by users of level none and the level required to execute a command - may be changed from Scheme). - - 1. `bot:user-user' - Will be able to execute most commands but not - all and cannot use masks on kicks and bans. - - 2. `bot:user-trusted' - For built-ins with a default configuration - this user has access to the same set of commands as an `user' but - may use masks on kicks and bans. Scheme commands may be added - which require a user to be of this level. - - 3. `bot:user-friend' - In the default configuration a user who is a - friend will be able to do everything short of stopping the bot. - Again, there may be user added commands that require a higher user - level. - - 4. `bot:user-master' - This is the highest user level and has access - to every feature of the bot. - - - -File: bobot++.info, Node: Protection, Next: Automatic Op, Prev: User Levels, Up: Levels - -3.2.4.2 Protection -.................. - -A user added via Scheme, the `bot.users' file, or `!adduser' may be -protected from being deoped, kicked, or banned. The user list and IRC -commands use the numeric codes, Scheme uses the symbolic names. - - 0. `bot:protection/none' No protection - - 1. `bot:protection/no-ban' No ban. If a user is banned the bot will - unban him.. - - 2. `bot:protection/no-kick' No kick. The user may still be kicked but - the bot will kickban the user who kicked the protected user. - - 3. `bot:protection/no-deop' No deop. The bot will ensure that the - user always maintains operator status. - - -File: bobot++.info, Node: Automatic Op, Next: Shit Levels, Prev: Protection, Up: Levels - -3.2.4.3 Automatic Op -.................... - -A user may be automatically given operator status upon entering a -channel. Scheme uses the symbolic name, the user list (`bot.users') and -IRC commands use the numeric value. - - 0. `bot:aop/no' Do not automatically op the user - - 1. `bot:aop/yes' Do automatically op the user - - -File: bobot++.info, Node: Shit Levels, Prev: Automatic Op, Up: Levels - -3.2.4.4 Shit Levels -................... - -The shit list and shit list related commands use different levels to -define how much the bot hates a user. Scheme uses the symbolic names, -the shit list and IRC commands use the numbers. - - 0. `bot:shit/none' The bot doesn't hate the user (this is the normal - level) - - 1. `bot:shit/no-op' The bot will deop the user any time he gains - operator priviliges in the channel - - 2. `bot:shit/no-join' The bot will kick and ban the user when he - joins the channel - - 3. `bot:shit/no-deban' The bot will kick and ban usre when he joins - the channel, and will prevent other users from debanning him. - - -File: bobot++.info, Node: Built-In Commands, Prev: Concepts, Up: Using the Bot - -3.3 Built-In Commands -===================== - -Bobot++ has many built-in commands that make it useful without -scripting support. The reference leaves off the command char; remember -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. If, however, you are using the command in a channel you may -omit the channel argument, and the bot will use the current channel. - -* Menu: - -* Bot Control Commands:: -* Message Commands:: -* Channel Control:: -* Spylist Commands:: -* User List Commands:: -* Server List Commands:: -* Shit List Commands:: -* Channel Info:: -* Scripting Commands:: -* Authentication Commands:: -* Miscellaneous Commands:: - - -File: bobot++.info, Node: Bot Control Commands, Next: Message Commands, Prev: Built-In Commands, Up: Built-In Commands - -3.3.1 Bot Control Commands --------------------------- - -These commands are used to control the behaviour of the bot. - - -- Command: cycle channel - Makes the bot leave and join CHANNEL. - - -- Command: die - Makes the bot stop immediately. - - -- Command: join channel - Makes the bot join CHANNEL. - - -- Command: nick newnick - Makes the bot use nickname NEW-NICK. - - -- Command: setfloodrate messages-per-second - Sets the flood rate to MESSAGES-PER-SECOND. The bot will consider - users sending more than MESSAGES-PER-SECOND messges in a second to - be flooding and will ignore them. - - -- Command: setversion version-info - Sets the string returned when someone requestions the version info - of the bot. - - -File: bobot++.info, Node: Message Commands, Next: Channel Control, Prev: Bot Control Commands, Up: Built-In Commands - -3.3.2 Message Commands ----------------------- - -These commands cause the bot to send messages (e.g. sending a message -to a channel or performing an action). For all commands TARGET may be -either a user or a channel. - - -- Command: action target do - Makes the bot to perform the action DO in a message sent to TARGET. - - -- Command: do command - Sends a raw irc command. COMMAND is the IRC command you wish to - send (e.g. `PRIVMSG #foo Hello!'). - - -- Command: msg target message - -- Command: say target message - Makes the bot say MESSAGE to TARGET. - - -File: bobot++.info, Node: Channel Control, Next: Spylist Commands, Prev: Message Commands, Up: Built-In Commands - -3.3.3 Channel Control ---------------------- - - -- Command: ban channel mask - Bans MASK from CHANNEL. You must be a trusted user to ban using a - host mask, but a normal user may ban individual nicks. - - -- Command: deban channel mask - Debans MASK from CHANNEL. You must be a trusted user to deban with - a MASK. - - -- Command: deop channel mask - Deops MASK on CHANNEL. - - -- Command: invite nick channel - Invites NICK to CHANNEL. - - -- Command: keep channel modes - Sets the MODES that the bot will keep for CHANNEL. - - -- Command: kick channel mask reason - -- Command: kickban channel mask reason - Kicks MASK out of CHANNEL, because of REASON. `kickban' also bans - MASK.You must be a trusted user to use a mask. - - -- Command: lock channel - Locks topic on CHANNEL - - -- Command: mode channel modes - Sets mode of CHANNEL to the mode string MODES. - - -- Command: op channel nick - Ops NICK on CHANNEL - - -- Command: part channel - Makes the bot leave CHANNEL. - - -- Command: tban channel mask time - -- Command: tkban channel mask time - Bans MASK from CHANNEL for TIME seconds. `tkban' also kicks the - user. You must be a trusted user to use a mask. - - -- Command: topic channel [topic] - Sets the topic in CHANNEL to TOPIC. If TOPIC is not supplied the - current topic is sent as a notice to the user calling the command. - - -- Command: unlock channel - Unlocks the topic on CHANNEL - - -File: bobot++.info, Node: Spylist Commands, Next: User List Commands, Prev: Channel Control, Up: Built-In Commands - -3.3.4 Spylist Commands ----------------------- - - * `spylist' Shows the bot's spylist. - - * `spymessage' Adds you to the spylist - - * `rspymessage' Removes you from the spy list. - - - -File: bobot++.info, Node: User List Commands, Next: Server List Commands, Prev: Spylist Commands, Up: Built-In Commands - -3.3.5 User List Commands ------------------------- - - -- Command: adduser mask - Adds the user - - `deluser' Removes NICK or MASK from the userlist. - - -- Command: save - Saves the userlist. - - `userlist' Shows the bot's userlist - - -File: bobot++.info, Node: Server List Commands, Next: Shit List Commands, Prev: User List Commands, Up: Built-In Commands - -3.3.6 Server List Commands --------------------------- - - * `addserver' Adds the server specified by HOST NAME or IP - ADDRESS to the server list. - - * `delserver' Deletes server from server list whose number in the - server list is SERVER NUMBER. - - * `nextserver' Makes the bot connect to the next server in its - server list. - - * `reconnect' Makes the bot reconnect to its current server. - - * `server' Select the server to connect to. SERVER NUMBER is the - number of the server in the serverlist. - - * `serverlist' Shows the bot's serverlist. - - - -File: bobot++.info, Node: Shit List Commands, Next: Channel Info, Prev: Server List Commands, Up: Built-In Commands - -3.3.7 Shit List Commands ------------------------- - - * `addshit' - - * `delshit' Removes NICK or MASK from the shitlist - - * `shitlist' Shows the bot's shitlist. - - - -File: bobot++.info, Node: Channel Info, Next: Scripting Commands, Prev: Shit List Commands, Up: Built-In Commands - -3.3.8 Channel Info ------------------- - - * `banlist' - - * `channels' Prints the channel(s) where the bot is currently. - - * `names' Yes Shows the nicknames and status of users on CHANNEL. - - * `stats' Yes Gives CHANNEL's statistics. - - -File: bobot++.info, Node: Scripting Commands, Next: Authentication Commands, Prev: Channel Info, Up: Built-In Commands - -3.3.9 Scripting Commands ------------------------- - - * `execute' *Only available if scripting support is enabled* - - * `load' Reloads the userlist from disk. - - * `loadscript' *Only available if scripting support is enabled* - - - -File: bobot++.info, Node: Authentication Commands, Next: Miscellaneous Commands, Prev: Scripting Commands, Up: Built-In Commands - -3.3.10 Authentication Commands ------------------------------- - - * `ident' Identifies you on the bot. Note that you should not use - this command in public ... - - * `password' Changes your password on the bot. Use `NONE' as - password if you want to clear it. Do not use this command in - public! - - - -File: bobot++.info, Node: Miscellaneous Commands, Prev: Authentication Commands, Up: Built-In Commands - -3.3.11 Miscellaneous Commands ------------------------------ - - * `alias' Makes an alias, and adds the function NEW NAME, that - will do exactly the same command as OLD NAME. - - * `dcclist' Gives the list of all DCC Chat connections. - - * `help' - - * `nslookup' Does a nameserver query about NICK host, HOST or IP - ADDRESS. - - * `who' Yes Show your level on CHANNEL - - * `whois' Yes Shows information about NICK on CHANNEL - - - -File: bobot++.info, Node: Scripting, Next: Concept Index, Prev: Using the Bot, Up: Top - -4 Scripting -*********** - -Bobot++'s most powerful feature is its scripting system. You write -scripts using Guile Scheme. This manual does not cover how to use Guile -or how to learn Scheme. *Note Guile Reference Manual: (guile)Top, for -the Guile reference manual and -`http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html' for a -good tutorial on Scheme. - - Note that in previous versions the scripting commands where in the -form `bot-FUNCTION'. They are now in the form `bot:FUNCTION'. The old -names are still available, but are deprecated and will be removed in -Bobot++ 3.0. New commands are only available with the `bot:' prefix. -The command `perl -pi -e ``s/bot-/bot:/g'' YOUR-FILES' should be enough -to convert your code to use the new functions. - - *NOTE*: All arguments to functions and hooks called by the bot are -strings unless otherwise specified. - -* Menu: - -* Adding New Commands:: -* Hooks:: -* Sending Messages:: -* Misc Scripting Stuff:: -* Scheme Commands:: -* Query Functions:: - - -File: bobot++.info, Node: Adding New Commands, Next: Hooks, Prev: Scripting, Up: Scripting - -4.1 Adding New Commands -======================= - -Adding a new command is simple. To register a new command use -`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 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'. - - -File: bobot++.info, Node: Hooks, Next: Sending Messages, Prev: Adding New Commands, Up: Scripting - -4.2 Hooks -========= - -Hooks are a powerful feature of Bobot++. Hooks are a hybrid of ircII -and tiny fugue (a MUD bot) hooks with a little bit of extra stuff added -in. A hook is called when a regular expression is matched against a -message sent to or by the bot. - - Bobot++ uses different hook types for each IRC message type, and also -includes a hook for accessing raw irc messages. Hooks are tagged with a -priority and a flag that specifies whether to call the next hook that -matches after calling the current one or to stop processing. - - Hooks are processed from the highest to lowest priority, with -fallthrough hooks of equal priority to non-fallthrough hooks being -executed first. - -* Menu: - -* Creating a Hook:: -* Hook Types:: - - -File: bobot++.info, Node: Creating a Hook, Next: Hook Types, Prev: Hooks, Up: Hooks - -4.2.1 Creating a Hook ---------------------- - -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 - defaults 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. - - -File: bobot++.info, Node: Hook Types, Prev: Creating a Hook, Up: Hooks - -4.2.2 Hook Types ----------------- - -The following sections document the different hooks Bobot++ exposes. - - The general format of each hook description is as if it were a -function to be defined, but these describe the function to be passed to -`bot:add-hook'. Do _not_ name your functions these names. - - That said, here is the list of available hooks functions. FIXME: -write docs - -* Menu: - -* Received Message Hooks:: -* Sent Message Hooks:: -* DCC CHAT Hooks:: -* Miscellaneous Hooks:: - - -File: bobot++.info, Node: Received Message Hooks, Next: Sent Message Hooks, Prev: Hook Types, Up: Hook Types - -4.2.2.1 Receieved Message Hooks -............................... - -The following hooks are triggered when a mesage is received by the bot. - - -- Function: hooks/action from to action - This hook is triggered when someone performs an action. - - FROM is the nickname the person that performed the action. - - TO is the target of the action, which is either a channel or the - Bot's nick if the user private messages the bot. - - ACTION is the text of the action. E.g. if someone did `* foobar - does baz', then ACTION would be the string `"does baz"'. - - -- Function: hooks/nickname old-nick new-nick - This hook is called when someone changes his nickname from - OLD-NICK to NEW-NICK. - - -- Function: hooks/signoff nick message - This hook is called when someone signs off of IRC. - - NICK is the nickname of the person signing off. - - MESSAGE is his quit message - - -- Function: hooks/ctcp nick to command rest - This hook is called when a CTCP request is received by the bot. - - NICK is the nickname of the sender. - - TO is the target of the CTCP request. This will either be a - channel the bot is in, or the nickname of the bot. - - COMMAND is the CTCP command issued. - - REST contains the arguments to the CTCP command. - - -- Function: hooks/ctcp-reply nick command rest - This hook is called when a CTCP REPLY is received. This occurs when - the bot has sent a CTCP request to another client. The CTCP REPLY - is always addressed to the bot directly. - - NICK is the nickname of the person who replied. - - COMMAND is the command to which NICK is replying. - - REST contains the body of the reply. - - -- Function: hooks/disconnect server intentional - This is called when the bot is disconnected from a server. - - SERVER is the hostname of the server from which the bot was - disconnected. - - INTENTIONAL is a flag set to `#t' when the bot disonnected from - the server as the result of a command (issued by a user from IRC, - SIGHUP, or from a script), or `#f' when the bot disconnected from - the server unintentionally.. - - -- Function: hooks/invite nick channel - This hook is called when a user invited the bot to join a channel. - - NICK is the nickname of the user who sent the invite. - - CHANNEL is the channel to which the bot was invited. - - -- Function: hooks/join nick channel - This is called when a user or the bot joins a channel. - - NICK is the nickname of the user who joined CHANNEL. This may be - the bot's nickname (the IRC server sends the JOIN command back to - the the bot after it joins a channel). - - CHANNEL is the channel that was joined - - -- Function: hooks/kick target from channel reason - This hook is called when a user, including the bot, is kicked out - of a channel. - - TARGET is the nick of the user who was kicked. This may be the - bot's nick. - - FROM is the nick of the user who issued the kick. This may also be - the bot's nick. - - CHANNEL is the channel the kick was issued in. - - REASON is the reason the user was kicked. - - -- Function: hooks/part nick channel - This hook is called when a user parts a channel. - - NICK is the user who parted the channel. This may be the bot. - - CHANNEL is the channel from which the user parted. - - -- Function: hooks/mode nick target modes - This hook is called when someone sets the modes of TARGET. - - NICK is the user who set the modes. This may be the bot. - - TARGET is the target of the MODE command. This may be a channel or - a user. If it is a user, it may be the bot. - - MODES is the MODE string. - - -- Function: hooks/message nick message - This hook is called when someone sends a private message to the - bot. - - NICK is the nickname of the user who sent the message. - - MESSAGE is the message the user sent. - - -- Function: hooks/notice nick message - This hook is called when a user send a private notice to the bot. - - NICK is the user who sent the notice. - - MESSAGE is the message the user sent. - - -- Function: hooks/public nick channel message - This hook is called when a user sends a normal message to a - channel. - - NICK is the user who sent the message. - - CHANNEL is the channel to which the message was sent. - - MESSAGE is the message that was sent. - - -- Function: hooks/public-notice nick channel message - This hook is called when a user send a notice to a channel. - - NICK is the user who sent the notice. - - CHANNEL is the channel to which the notice was sent. - - MESSAGE is the message that was sent. - - -- Function: hooks/raw raw-message - This hook is called every time a message is received. This matches - on the raw message text and passes the hook function the raw IRC - message. - - RAW-MESSAGE is the raw IRC message. - - -- Function: hooks/topic nick channel new-topic - This hook is called when a user changes the topic in a channel. - - NICK is the user who set the topic. This may be the bot. - - CHANNEL is the channel that's topic was changed. - - NEW-TOPIC is the new topic. - - -File: bobot++.info, Node: Sent Message Hooks, Next: DCC CHAT Hooks, Prev: Received Message Hooks, Up: Hook Types - -4.2.2.2 Sent Message Hooks -.......................... - -These hooks are called when the bot sends a message. MYNICK is always -the bot's nick and will not be documented in each hook description. - - -- Function: hooks/send/public mynick channel message - This hook is called when the bot sends a normal message to a - channel. - - CHANNEL is the channel to which the bot sent the message. - - MESSAGE is the message the bot sent. - - -- Function: hooks/send/message mynick to message - This hook is called when the bot sends a private message to a user. - - TO is the nick of the user to whom the message was sent. - - MESSAGE is the message that was sent. - - -- Function: hooks/send/action mynick to message - This hook is called when the bot sents an action to a channel or a - user. - - TO is the channel or nick of the user to which the action was sent. - - MESSAGE is the text of the action. - - -- Function: hooks/send/ctcp mynick to command message - This hook is called when the bot sends a CTCP message _other than_ - an ACTION to a channel or user. - - TO is the channel or nick of the user to which the CTCP was sent. - - COMMAND is the CTCP command that was sent. - - MESSAGE is a string containing the arguments to the CTCP command. - - -- Function: hooks/send/who who - This is called when the bot sends a WHO message. The regex is - matched on WHO, which is also passed as the only argument to your - function. - - WHO is the channel or nick that was WHOed. - - -- Function: hooks/send/whois nick - This is called when the bot sends a WHOIS message. The regex is - matched on NICK, which is also passed as the only argument to your - function. - - NICK is the nickname of the person who was WHOISed. - - -File: bobot++.info, Node: DCC CHAT Hooks, Next: Miscellaneous Hooks, Prev: Sent Message Hooks, Up: Hook Types - -4.2.2.3 DCC CHAT Hooks -...................... - -These hooks are called when a user initializes a DCC CHAT and when the -bot receives messages from the user in a DCC CHAT. - - -- Function: hooks/dcc/chat-begin from - This hook is called when a user begins a DCC CHAT with the bot. - FROM is the user's address in the form `nick!user@host'. - - -- Function: hooks/dcc/chat-end address - This hook is called when a DCC CHAT is purged after being idle for - a while, or when the user closes the DCC CHAT. As such, you cannot - write any more data to the DCC CHAT. - - ADDRESS is the address (nick!user@host) of the person on the other - side of the DCC. - - -- Function: hooks/dcc/chat-message from message - This hook is called 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. - - -File: bobot++.info, Node: Miscellaneous Hooks, Prev: DCC CHAT Hooks, Up: Hook Types - -4.2.2.4 Miscellaneous Hooks -........................... - - -- Function: hooks/flood nick - This hook is called when a user is detected flooding the bot. - - NICK is the nickname of the user flooding the bot. - - -- Function: hooks/timer time - This hook is called once a minute. The regex is *not* used. - - TIME is the in zero-padded `hh:mm' format. - - -File: bobot++.info, Node: Sending Messages, Next: Misc Scripting Stuff, Prev: Hooks, Up: Scripting - -4.3 Sending Messages -==================== - -There are several types of messages you can send with Bobot++ from -scripts. They are split into High and Low level message sending -functions. Most bots will only use the high level functions, but the -low level ones are provided for when a bot needs to do things like send -raw IRC messages or CTCP commands. - -* Menu: - -* High Level Message Functions:: -* Low Level Message Functions:: - - -File: bobot++.info, Node: High Level Message Functions, Next: Low Level Message Functions, Prev: Sending Messages, Up: Sending Messages - -4.3.1 "High Level" Message Functions ------------------------------------- - - -- Function: bot:action channel message - Send an "action" type MESSAGE to CHANNEL - - -- Function: bot:msg target message - -- Function: bot:say target message - Send a public or private message to TARGET. - - TARGET may be a channel or a nickname. - - In versions of Bobot++ prior to 2.1.8 `bot:say' could only send to - channels, and `bot:msg' could only send private messages to users. - They are aliases of the same command now, but it may be worth - using them as they used to for clarity. - - -- Function: bot:notice target message - Sends MESSAGE as a NOTICE to TARGET. TARGET may be a user (nick) - or a channel. - - -File: bobot++.info, Node: Low Level Message Functions, Prev: High Level Message Functions, Up: Sending Messages - -4.3.2 "Low Level" Message Functions ------------------------------------ - -The "Low Level" messaging functions allow you to do things like send -CTCP messages. You probably want to read rfc 2812 and the CTCP spec -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. - - -- Function: bot: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:ctcp-reply to command message - TO is the target of your CTCP reply, COMMAND is the CTCP command, - and MESSAGE is the message (or arguments) of the command. Make - sure to `bot:ctcp-quote' the message! - - This is used to reply to a ctcp that the bot has received. - - -File: bobot++.info, Node: Misc Scripting Stuff, Next: Scheme Commands, Prev: Sending Messages, Up: Scripting - -4.4 Misc. Scripting Stuff -========================= - -These are a few useful things that I thought people writing scripts -might want to know. - - If you want to execute code when the bot exits, just do `add-hook! -bot:exit-hook THUNK' where THUNK is an argumentless procedure (a -thunk). When the bot exits your thunk will be called. - -* Menu: - -* Scheme Commands:: -* Query Functions:: - - -File: bobot++.info, Node: Scheme Commands, Next: Query Functions, Prev: Misc Scripting Stuff, Up: Scripting - -4.5 Scheme Commands -=================== - -These scheme functions are the same as the commands. They allow you to -execute bot commands from scheme scripts. - - -- 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 must 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 must 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 must 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 must be a trusted user to use a MASK. - - -- Function: bot:lock channel - Locks topic on CHANNEL. - - -- 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:who target - Sends a WHO command to TARGET. TARGET may be either a channel or a - user. - - -- Function: bot:whois nick - Sends a WHOIS command to NICK. NICK *must* be a nickname, you - cannot send a WHOIS to a channel. - - -- Function: bot:delcommand - [ Probably deletes a command added with `bot:addcommand' ? ] - - -File: bobot++.info, Node: Query Functions, Prev: Scheme Commands, Up: Scripting - -4.6 Query Functions -=================== - - [ I didn't know where to put any of these, so I just 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. ] - - These functions allow scripts to get various bits of information. - - -- Function: bot:logport - [ Probably returns the log port? ] - - -- 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: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 - `bot: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 - `bot: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 - - -File: bobot++.info, Node: Concept Index, Next: Function Index, Prev: Scripting, Up: Top - -Concept Index -************* - -[index] -* Menu: - -* Background on Hooks: Hooks. (line 6) - - -File: bobot++.info, Node: Function Index, Next: Variable Index, Prev: Concept Index, Up: Top - -Function Index -************** - -[index] -* Menu: - -* %bot:load-extensions: Query Functions. (line 75) -* action: Message Commands. (line 11) -* adduser: User List Commands. (line 7) -* ban: Channel Control. (line 7) -* bot:action: High Level Message Functions. - (line 7) -* bot:addcommand: Adding New Commands. (line 11) -* bot:addhook: Creating a Hook. (line 9) -* bot:addserver: Scheme Commands. (line 22) -* bot:addshit: Scheme Commands. (line 26) -* bot:addtimer: Query Functions. (line 36) -* bot:adduser: Scheme Commands. (line 10) -* bot:ban: Scheme Commands. (line 37) -* bot:change-command-level: Scheme Commands. (line 42) -* bot:ctcp: Low Level Message Functions. - (line 13) -* bot:ctcp-quote: Query Functions. (line 69) -* bot:ctcp-reply: Low Level Message Functions. - (line 18) -* bot:cycle: Scheme Commands. (line 48) -* bot:dcc-chat-send: Query Functions. (line 40) -* bot:deban: Scheme Commands. (line 51) -* bot:delcommand: Scheme Commands. (line 141) -* bot:delserver: Scheme Commands. (line 55) -* bot:delshit: Scheme Commands. (line 62) -* bot:deltimer: Query Functions. (line 38) -* bot:deluser: Scheme Commands. (line 59) -* bot:deop: Scheme Commands. (line 65) -* bot:die: Scheme Commands. (line 68) -* bot:do: Scheme Commands. (line 71) -* bot:flush: Query Functions. (line 27) -* bot:flushport: Query Functions. (line 30) -* bot:getnickname: Query Functions. (line 20) -* bot:getserver: Query Functions. (line 23) -* bot:getserverlist: Query Functions. (line 25) -* bot:invite: Scheme Commands. (line 73) -* bot:join: Scheme Commands. (line 76) -* bot:keep: Scheme Commands. (line 79) -* bot:kick: Scheme Commands. (line 82) -* bot:kickban: Scheme Commands. (line 86) -* bot:load: Query Functions. (line 53) -* bot:load-module: Query Functions. (line 55) -* bot:lock: Scheme Commands. (line 90) -* bot:log: Query Functions. (line 48) -* bot:logport: Query Functions. (line 17) -* bot:match-not-channel: Query Functions. (line 59) -* bot:match-to-me: Query Functions. (line 63) -* bot:mode: Scheme Commands. (line 93) -* bot:msg: High Level Message Functions. - (line 10) -* bot:nextserver: Scheme Commands. (line 96) -* bot:nick: Scheme Commands. (line 99) -* bot:notice: High Level Message Functions. - (line 21) -* bot:op: Scheme Commands. (line 102) -* bot:part: Scheme Commands. (line 105) -* bot:random: Query Functions. (line 33) -* bot:reconnect: Scheme Commands. (line 108) -* bot:say: High Level Message Functions. - (line 11) -* bot:sent-to-me?: Query Functions. (line 67) -* bot:server: Scheme Commands. (line 111) -* bot:setfloodrate: Scheme Commands. (line 115) -* bot:setversion: Scheme Commands. (line 117) -* bot:tban: Scheme Commands. (line 119) -* bot:tkban: Scheme Commands. (line 122) -* bot:topic: Scheme Commands. (line 126) -* bot:unlock: Scheme Commands. (line 130) -* bot:use-module: Query Functions. (line 57) -* bot:who: Scheme Commands. (line 133) -* bot:whois: Scheme Commands. (line 137) -* cycle: Bot Control Commands. - (line 9) -* deban: Channel Control. (line 11) -* deop: Channel Control. (line 15) -* die: Bot Control Commands. - (line 12) -* do: Message Commands. (line 14) -* hooks/action: Received Message Hooks. - (line 9) -* hooks/ctcp: Received Message Hooks. - (line 31) -* hooks/ctcp-reply: Received Message Hooks. - (line 43) -* hooks/dcc/chat-begin: DCC CHAT Hooks. (line 10) -* hooks/dcc/chat-end: DCC CHAT Hooks. (line 14) -* hooks/dcc/chat-message: DCC CHAT Hooks. (line 22) -* hooks/disconnect: Received Message Hooks. - (line 54) -* hooks/flood: Miscellaneous Hooks. (line 7) -* hooks/invite: Received Message Hooks. - (line 65) -* hooks/join: Received Message Hooks. - (line 72) -* hooks/kick: Received Message Hooks. - (line 81) -* hooks/message: Received Message Hooks. - (line 112) -* hooks/mode: Received Message Hooks. - (line 102) -* hooks/nickname: Received Message Hooks. - (line 20) -* hooks/notice: Received Message Hooks. - (line 120) -* hooks/part: Received Message Hooks. - (line 95) -* hooks/public: Received Message Hooks. - (line 127) -* hooks/public-notice: Received Message Hooks. - (line 137) -* hooks/raw: Received Message Hooks. - (line 146) -* hooks/send/action: Sent Message Hooks. (line 25) -* hooks/send/ctcp: Sent Message Hooks. (line 33) -* hooks/send/message: Sent Message Hooks. (line 18) -* hooks/send/public: Sent Message Hooks. (line 10) -* hooks/send/who: Sent Message Hooks. (line 43) -* hooks/send/whois: Sent Message Hooks. (line 50) -* hooks/signoff: Received Message Hooks. - (line 24) -* hooks/timer: Miscellaneous Hooks. (line 12) -* hooks/topic: Received Message Hooks. - (line 153) -* invite: Channel Control. (line 18) -* join: Bot Control Commands. - (line 15) -* keep: Channel Control. (line 21) -* kick: Channel Control. (line 24) -* kickban: Channel Control. (line 25) -* lock: Channel Control. (line 29) -* mode: Channel Control. (line 32) -* msg: Message Commands. (line 18) -* nick: Bot Control Commands. - (line 18) -* op: Channel Control. (line 35) -* part: Channel Control. (line 38) -* save: User List Commands. (line 12) -* say: Message Commands. (line 19) -* setfloodrate: Bot Control Commands. - (line 21) -* setversion: Bot Control Commands. - (line 26) -* tban: Channel Control. (line 41) -* tkban: Channel Control. (line 42) -* topic: Channel Control. (line 46) -* unlock: Channel Control. (line 50) - - -File: bobot++.info, Node: Variable Index, Prev: Function Index, Up: Top - -Variable Index -************** - -[index] -* Menu: - -* %bot:loadpath: Query Functions. (line 73) -* exit-hook: Misc Scripting Stuff. (line 9) - - - -Tag Table: -Node: Top538 -Node: Introduction2446 -Node: Configuration2758 -Node: Configuration File Placement3202 -Node: Configuration Files3703 -Node: bot.conf3939 -Node: server syntax6125 -Node: channel syntax6923 -Node: bot.users7967 -Node: bot.init9428 -Node: bot.autoexec10087 -Node: bot.shit10588 -Node: Using the Bot11840 -Node: Starting the Bot12172 -Node: Concepts13678 -Node: User List13953 -Node: Shit List14076 -Node: Spy List14199 -Node: Levels14317 -Node: User Levels14487 -Node: Protection15866 -Node: Automatic Op16585 -Node: Shit Levels16999 -Node: Built-In Commands17725 -Node: Bot Control Commands18601 -Node: Message Commands19456 -Node: Channel Control20141 -Node: Spylist Commands21695 -Node: User List Commands22009 -Node: Server List Commands22377 -Node: Shit List Commands23092 -Node: Channel Info23387 -Node: Scripting Commands23755 -Node: Authentication Commands24120 -Node: Miscellaneous Commands24572 -Node: Scripting25133 -Node: Adding New Commands26222 -Node: Hooks27533 -Node: Creating a Hook28371 -Node: Hook Types29577 -Node: Received Message Hooks30141 -Node: Sent Message Hooks35368 -Node: DCC CHAT Hooks37252 -Node: Miscellaneous Hooks38292 -Node: Sending Messages38741 -Node: High Level Message Functions39273 -Node: Low Level Message Functions40136 -Node: Misc Scripting Stuff41189 -Node: Scheme Commands41687 -Node: Query Functions46331 -Node: Concept Index48557 -Node: Function Index48776 -Node: Variable Index59377 - -End Tag Table -- 2.20.1