home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / os2bot.zip / BOT.DOC < prev    next >
Text File  |  1997-07-20  |  33KB  |  816 lines

  1.  
  2.                     OS2Bot Administrator Guide
  3.                            Version 2.76
  4.  
  5. OS2Bot provides several services for the #os2 channel. Its primary
  6. features include auto-oping authorized channel operators, flood
  7. protection, and data base updates and queries.
  8.  
  9. /*********************************************************************/
  10. /* The following commands can be executed by any user (level 0)      */
  11. /*********************************************************************/
  12.  
  13. !ASK  keyword
  14.  
  15.    The !ASK command queries the bot database for the entry with a
  16.    name of "keyword". If the entry is found it is displayed.
  17.  
  18. !CHOP  nickmask
  19.  
  20.    The !CHOP command displays the last time a given chan-op joined
  21.    the channel. The "nickmask" is the nickname of the chan-op. The
  22.    "nickmask" may contain wildcards. Therefore a "nickmask" of *
  23.    will display all chan-ops registered with OS2Bot.
  24.  
  25. !DCC  LIST | file.name
  26.  
  27.    The !DCC command displays or sends via DCC a file made available
  28.    via the bot's services. If "LIST" is specified a list of files
  29.    available to the user is displayed. If "file.name" is specified
  30.    the requested file will be sent to the user by executing a
  31.    DCC SEND command to the user.
  32.  
  33. !FIND  text
  34.  
  35.    The !FIND command will locate the first 10 database records which
  36.    contain the string "text" within their entries and display those
  37.    entries to the user. This command is restricted to private message
  38.    to the bot.
  39.  
  40. !HELP  [command]
  41.  
  42.    The !HELP command displays the syntax of the available commands
  43.    to the user. Optionally the specific command name may be provided
  44.    to obtain the syntax of just that command.
  45.  
  46. !LIST  wildcard
  47.  
  48.    The !LIST command displays the keywords assigned in the database.
  49.    A wildcard matching parameter must be specified such as a* to
  50.    display all keywords beginning with "a" or "A". A value of "*"
  51.    is not valid. This command must be sent to the bot via a /MSG.
  52.  
  53. !FTP  site text
  54.  
  55.    The !FTP command displays up to 10 records from the specified
  56.    site's index00 file which contains the specified text.
  57.  
  58. !PURPOSE
  59.  
  60.    Displays the channel purpose if one is set.
  61.  
  62. !RULE [n]
  63.  
  64.    Displays the channel rules is set. If you do not specify the
  65.    [n] parameter, all rules are displayed. If [n] is specified,
  66.    only that rule is displayed. n is an integer value beginning
  67.    with 1 up to the highest rule number.
  68.  
  69. !SET  keyword text
  70.  
  71.    This command sets a new entry in the database. "keyword" is the
  72.    keyword to be assigned to the entry. "text" is the text of the
  73.    new entry. The entry will have the nickname of the user doing
  74.    the !SET appended to the end of the entry. If the database is
  75.    "locked" via the !LOCK command, then only chan-ops can do !SET.
  76.    If the the lock is set to "all" all !sets are blocked.
  77.    Note that although normally all users can do !SET, they cannot
  78.    erase entries as the !ERASE command is resticted to chan-ops. In
  79.    addition, !SET will not replace an existing entry. Existing
  80.    entries must be erased using the !ERASE command before new text
  81.    can be assigned to a keyword.
  82.  
  83.  
  84. /*********************************************************************/
  85. /* The following commands can be executed by level 100 chan-ops      */
  86. /*********************************************************************/
  87.  
  88. !DCC
  89.  
  90.    The !DCC command without operands displays active DCC sessions
  91.    if the usr is level 100 or above.
  92.  
  93. !ERASE keyword
  94.  
  95.    The !ERASE command deletes the record with a key of "keyword"
  96.    from the database.
  97.  
  98. !FTP  [hits] site text
  99.  
  100.    The !FTP command displays up to 10 records from the specified
  101.    site's index00 file which contains the specified text.
  102.  
  103.    Chanops defined to the bot may specify the number of hits to be
  104.    displayed. The minimum is 1, maximum is 100, default is 10.
  105.  
  106. !IGNORE [-]user@host.mask [minutes]
  107.  
  108.    Tell the bot to ignore the specified user@host for the time
  109.    specified. If [-] is specified then a active ignore will be
  110.    removed. If [minutes] is not specified, the default ignore time
  111.    is 15 minutes.
  112.  
  113.    If no parameters are specified on the IGNORE command the current
  114.    ignore list is displayed.
  115.  
  116. !LOCK  on | off | all
  117.  
  118.    Normally all users are permitted to execute !SET commands. However,
  119.    if the Lock mode is set "on" only chan-ops are permitted to do
  120.    !SET's. If the mode is set to "all" sets are blocked for all users.
  121.  
  122. !OP [autoop [on|off]]
  123. !OP [nick1 nick2 ...]
  124.  
  125.    When the !OP command is executed without any parameters it is
  126.    treated as a request for chan-op status. In this case an authorized
  127.    user is given ops on the channel. The command is usually ignored
  128.    when executed by a non-authorized user. However, see the !OPKICK
  129.    command to kick users begging for ops.
  130.  
  131.    When the first parameter in the command is "autoop" then the
  132.    command is used to set the chan-ops auto-op mode. If the auto-op
  133.    mode is "off" the user will not be automatically oped when they
  134.    join the channel. If the auto-op value is "on" the user will be
  135.    oped when they join the channel provided that 1) the general
  136.    auto-op mode is set on (See the !AUTOOP command) and 2) the user
  137.    does not have a password set.
  138.  
  139.    If any other parameter besides "autoop" is specified it is treated
  140.    as a list of nicknames separated by spaces. Each name is validity
  141.    checked and the user given ops until the end of the list is
  142.    found or a invalid nickname is encountered.
  143.  
  144. !PASS  password [newpassword]
  145.  
  146.    The !PASS command is used to send, add, change or delete a chan-op
  147.    user password. Only the password of the sender of this command may
  148.    be maintained. The command must always be sent to the bot via /MSG.
  149.    If you should accidentally enter the command in the open channel
  150.    you have lost integrity of your password and should change it
  151.    immediately.
  152.  
  153.    A chan-op would set and use a password if and when 1) passwords
  154.    should be required by policy due to a security risk or 2) if the
  155.    chan-op determines that they are subceptable to being impersonated
  156.    by a malicious user hacking their user@host and obtaining access
  157.    to the bot and chan-op priviledges. Note that if this is the case
  158.    you must also set a password with the W bot also to maintain
  159.    integrity from all fronts.
  160.  
  161.    Setting a user password will automatically disable the auto-op
  162.    features. Once a password is established, the password must be
  163.    sent to the bot before any restricted bot commands can be used.
  164.    If the user has auto-op set for their entry, they will be
  165.    automatically op'd when they successfully authenticate with
  166.    the !PASS command.
  167.  
  168.    To set a password initially enter /MSG OS2BOT !PASS * password
  169.  
  170.    To send your password to the bot enter /MSG OS2BOT !PASS password
  171.  
  172.    To change your password enter /MSG OS2BOT !PASS password newpassword
  173.  
  174.    To delete your password enter /MSG OS2BOT !PASS password *
  175.  
  176. !QUIET  on | off | ops
  177.  
  178.    Several !commands can be executed on the open channel by any
  179.    user. However, if Quiet mode is set "on" then normal users must
  180.    /MSG the bot for !commands. Regardless of the Quiet mode,
  181.    chan-ops can always enter the command as public messages and have
  182.    them displayed for all users.
  183.  
  184.    If Quiet Mode is set to "ops" then all commands to the bot
  185.    are ignored unless they come from a chanop.
  186.  
  187. !STATUS
  188.  
  189.    The !STATUS command displays the various mode setting of the bot.
  190.    The command may be abbreviated as !STAT.
  191.  
  192.  
  193. /*********************************************************************/
  194. /* The following commands can be executed by level 200 chan-ops      */
  195. /*********************************************************************/
  196.  
  197. !AUTOOP on | off
  198.  
  199.    This command sets the global auto-op flag. If AutoOp is "on" then
  200.    the bot will automatically op authorized users when they join
  201.    the channel provided that 1) They have thier user level auto-op
  202.    setting on (see the !OP command) and 2) That they do not have a
  203.    individual password set (see the !PASS command). If AutoOp is
  204.    "off" automatic oping is disabled regardless of the other settings.
  205.  
  206. !FLOOD
  207. !FLOOD BOT  msgs secs  ignoresecs
  208. !FLOOD PUB  msgs secs
  209. !FLOOD MASS cmds secs  ignoresecs
  210. !FLOOD PACE bytes msgs secs
  211.  
  212.    This command displays and sets the various flood protection
  213.    parameters. If no parameters are specified, the current values
  214.    are displayed and an idication given if mass flood protection
  215.    is in effect at the current time.
  216.  
  217.    If the BOT parameter is specified the bot flood values are set.
  218.    If "msgs" private messages are received by the bot in the
  219.    interval of "secs" seconds the abusing user will be ignored by
  220.    the bot. Once a abusing user is ignored, the bot will accept no
  221.    more commands from that user for "ignoresecs" seconds.
  222.  
  223.    If the PUB parameter is specified the public flood values are
  224.    set. If the bot detects that a user sends "msgs" messages to the
  225.    channel within "secs" seconds the user will be kicked off the
  226.    channel by the bot.
  227.  
  228.    If the MASS parameter is specified the mass flood values are set.
  229.    If "cmds" bot commands or CTCP commands are received by the bot
  230.    within "secs" seconds from any source, mass flood protection is
  231.    activated for "ignoresecs" seconds. While mass flood protection
  232.    is in effect the bot will ignore all bot commands and CTCP commands
  233.    from all sources except channel operators defined to the bot.
  234.  
  235.    Pacing values are set using the PACE keyword and related values.
  236.    The bot will pace output messages so that no more than
  237.    "bytes" bytes and / or "msgs" messages will be transmitted
  238.    within "secs" seconds time. This is used to prevent the bot from
  239.    being flooded off the server. For flood protection to be active
  240.    "bytes" and either "msgs" or "secs" or both "msgs" and "secs"
  241.    must be non-zero.
  242.  
  243.    Channel operators defined to the bot are not affected by flood
  244.    protection controls.
  245.  
  246. !OPKICK [off] [text]
  247.  
  248.    If a visitor asks for ops using the !OP command and that user
  249.    is not registered with the bot to have chan-ops, the !OP request
  250.    will normally be quietly ignored. However, if the OpKick mode
  251.    is set, the unauthorized user will be kicked from the channel
  252.    with a reason of "text".
  253.  
  254.    To set OpKick on simply enter !OPKICK kick text.
  255.  
  256.    To turn OpKick mode off enter !OPKICK off.
  257.  
  258.    To display the text currently set for OpKick enter !OPKICK
  259.  
  260. !SAY  text
  261.  
  262.    The !SAY command is used to tell the bot to say something on the
  263.    open channel. Obviously the command must be executed via /MSG or
  264.    it loses it's usefullness.
  265.  
  266.    WARNING: Since this command allows for entering raw text to IRC
  267.    the bot should always be given a low access level in the W/X
  268.    bot access list. If a high level is given and the bot is
  269.    compromised then the W/X bot will likewise be compromised.
  270.  
  271.    Examples:  /MSG OS2BOT !SAY Hello joe!
  272.  
  273. !SNDKICK [off] [text]
  274.  
  275.    If this option is set and a user does a CTCP SOUND to the channel
  276.    they will be kicked with the text as provided.
  277.  
  278.    To set SndKick on simply enter !SndKICK kick text.
  279.  
  280.    To turn SndKick mode off enter !SNDKICK OFF.
  281.  
  282.    To display the text currently set for SndKick enter !SNDKICK
  283.  
  284. !TOPIC  [off | text]
  285.  
  286.    A default topic can be maintained by the bot by using the !TOPIC
  287.    command. If a default topic is set the bot will monitor the
  288.    topic from time to time and if it discovers that no topic is
  289.    set it will set the default topic. If any topic is already set
  290.    the bot leaves the topic as is.
  291.  
  292.    To set a default topic enter !TOPICK default topic text
  293.  
  294.    To turn the topic feature off enter !TOPICK OFF.
  295.  
  296.    To display the default topic enter !TOPIC
  297.  
  298.  
  299. /*********************************************************************/
  300. /* The following commands can be executed by level 300 chan-ops      */
  301. /*********************************************************************/
  302.  
  303. Only 300+ chan-ops can execute bot commands while not joined to
  304. the channel.
  305.  
  306. !INVITE channel
  307.  
  308.    Ask the bot to invite us to join the specified channel. Obviously
  309.    the bot must be on that channel and have ops there. This is useful
  310.    if the the channel has been set +i and access is desired.
  311.  
  312. !JOIN
  313.  
  314.    Ask the bot to join the channel. Since the bot is not on the
  315.    channel when this command would be executed, it must be done via
  316.    a /MSG command.
  317.  
  318. !KILL [die]
  319.  
  320.    The /KILL command terminates the bot. Once it is terminated it
  321.    cannot be remotely restarted. This command would be used only
  322.    at times where the bot is causing a disruption of some sort and
  323.    must be terminated to eliminate the problem. The !KILL command
  324.    must be executed via a /MSG to the bot.
  325.  
  326.    If the "die" parameter is specified, the bot terminates with a
  327.    return value of 1. Otherwise it terminates with a return value
  328.    of 0. This is useful in scripts that restart the bot.
  329.  
  330. !LEAVE
  331.  
  332.    Ask the bot to leave the channel. You can later ask it to rejoin
  333.    using the !JOIN command.
  334.  
  335. !MODE [none|modeflags]
  336.  
  337.    This command tells the bot to maintain the channelk mode. If no
  338.    parameters are specified the current mode being maintained is
  339.    displayed. If [modeflags] are specified, the mode specified by
  340.    those flags will be maintained. If [none] is specified then
  341.    this feature is disabled and the bot will not maintain any
  342.    specific channel mode. When activated, the channel mode is
  343.    checked and adjusted as needed every two minutes.
  344.  
  345.  
  346. /*********************************************************************/
  347. /* The following commands can be executed by level 400 chan-ops      */
  348. /*********************************************************************/
  349.  
  350. !CHOP  nick DELETE
  351.  
  352.    This version of the !CHOP command removes a user from the bot
  353.    access list. The "nick" is the nickname of the user to be removed.
  354.  
  355.    You may not delete a user with an access level equal to or
  356.    greater than you own access level.
  357.  
  358.    The command must be executed via /MSG.
  359.  
  360. !CHOP  nick mask level flags
  361.  
  362.    This version of the !CHOP command adds or modifies a user in the
  363.    bot access list. This command must be executed using /MSG.
  364.  
  365.    The "nick" field is the nickname of the user to add
  366.    or modify. Multiple entries for a user may be added by changing
  367.    the "nick" entry slightly. The "nick" field is used only for
  368.    use in the !CHOP command and is not used to identify the user
  369.    when they join the channel.
  370.  
  371.    The "mask" is the user@host mask for the user. i.e. *!*jbob@*.my.net
  372.  
  373.    The "level" field is the access level for this user. i.e. 200
  374.  
  375.    The "flag" field determines if the user should be auto-oped when
  376.    joining the channel. A value of "A" will cause the user to be
  377.    auto-oped. a value of "a" will disable auto-op for this user.
  378.    This field may be modified by the user via the !OP command.
  379.  
  380.    If the nickname already exists, all fields except "nick" will be
  381.    replaced with their new values. If the nickname does not exist
  382.    it will be created.
  383.  
  384.    To change the nick, first create the new entry using the new nick
  385.    name and then delete the old entry. The actual order only matters
  386.    in case you make an error on the create and need to refer to the
  387.    old entry again.
  388.  
  389.    You may not add or modify a user giving them a access level equal
  390.    to or greater than you own access level.
  391.  
  392. !FLAG  nick [flags] [PASS *|password]
  393.  
  394.    The !FLAG command displays or changes a chan-ops flags. It can
  395.    also be used to set or remove the users password.
  396.  
  397.    If no optional parameters are specified, the users flags are
  398.    displayed.
  399.  
  400.    If PASS is specified the users password is set to "password" or
  401.    if the password is "*" the password is removed. The PASS parameter
  402.    may be specified with or without the [flags] field.
  403.  
  404.    The supported flag values are shown below. An upper case value
  405.    sets the option on and a lower case value sets the option off.
  406.  
  407.    A - Auto-op the user when they join the channel.
  408.    a - Do not auto-op the user.
  409.    P - The user must use a password.
  410.    p - Using a password is optional.
  411.    S - The user is suspended.
  412.    s - The user is not suspended.
  413.  
  414.    It is important to verify that a user requesting that his
  415.    password be reset is indeed who he says he is! Make every effort
  416.    to identify him first. The user@host is NOT adequate for this
  417.    person because the potential for a hacked user@host is exactly
  418.    the situation where the password provides protection. E-Mail
  419.    to and from the requesting user is a better choice for validation.
  420.    It is suggested that you e-mail the user and await a reply from
  421.    then by e-mail before honoring any such reset request.
  422.  
  423. !LOG on | off
  424.  
  425.    Turns channel logging on or off.
  426.  
  427. !PURPOSE text
  428.  
  429.    Sets the channel purpose to "text".
  430.  
  431. !REDIR  off | #channel text
  432.  
  433.    The redirect feature is used to hold a second channel open and
  434.    send a message to that channel when someone joins it. It's
  435.    purpose is to redirect users joining a similar channel name to
  436.    the real channel. Only one channel can be redirected.
  437.  
  438.    #channel is the name of the channel to be redirected.
  439.  
  440.    "text" is the message text sent to the channel when someone
  441.    joins it.
  442.  
  443.    Use the "off" keyword to set channel redirection off.
  444.  
  445. !RULE n text
  446.  
  447.    Sets the specified channel rule. "n" should be an integer
  448.    beginning with "1" up to the highest rule to be set. The
  449.    value of "n" should be a consecutive number in the rule set.
  450.  
  451. !SAY  text or /command
  452.  
  453.    This is the same as the level 200 command except you can also
  454.    say /commands with it such as mode, etc.
  455.  
  456.    WARNING: Since this command allows for entering raw text to IRC
  457.    the bot should always be given a low access level in the W/X
  458.    bot access list. If a high level is given and the bot is
  459.    compromised then the W/X bot will likewise be compromised.
  460.  
  461.    Examples:  /MSG OS2BOT !SAY Hello joe!
  462.               /MSG OS2BOT !SAY /KICK Joe Your being a lamer
  463.  
  464. !SETDCC filename DEL|level comments
  465.  
  466.    This command is used to add, delete or alter a DCC record.
  467.    If "DEL" is specified the entry for "filename" is deleted.
  468.    If "filename" is specified the entry is updated or added as
  469.    appropriate. The "level" is the user level at which the user
  470.    of the !DCC command must have to list or DCC request the file.
  471.    "comments" are displayed when the user does a !DCC LIST provided
  472.    their user level is greater or equal to the level for the file.
  473.  
  474.    Note that the file must reside in the bot's directory. The file
  475.    name must not contain any ":" or "\" characters or any DCC
  476.    requests will fail. This restriction is a security precaution
  477.    so that the bot cannot be used to obtain other files from the
  478.    machine where the bot executes.
  479.  
  480.  
  481. /*********************************************************************/
  482. /* The following commands can be executed by level 500 chan-ops      */
  483. /*********************************************************************/
  484.  
  485. !CFG   add|del|list parms ...
  486.  
  487.    The !CFG command is used to list, add or delete records from
  488.    the config file. If "list" is specified, all records matching
  489.    the parms will be listed.
  490.  
  491.    The parms are as many parameters of the config record as
  492.    required to adequately indentify the records to be acted on.
  493.  
  494.    Example: !cfg list chop agios
  495.  
  496.    Note that only the config file is altered. No attempt to
  497.    dynamically adjust run parameters is made.
  498.  
  499. !KICK  [Add|Del phrase]
  500.  
  501.    The !KICK feature is used to kick a user if they enter the
  502.    specified key phrase publicly in the channel.
  503.  
  504.    The list of active kick phrases may be displayed by entering
  505.    the !KICK command with no parameters.
  506.  
  507.    To add a phrase to the kick list, enter /KICK ADD the phrase.
  508.  
  509.    To remove a phrase from the list, enter /KICK DEL the phrase.
  510.  
  511. !PASSLVL [nnn]
  512.  
  513.    The !PASSLVL command is use to force the use of user level
  514.    passwords by chan-ops whose access is above the specified
  515.    level. A Pass Level of 0 indicates that the feature is
  516.    disabled.
  517.  
  518.    If no operands are specified the current Pass Level is displayed.
  519.  
  520.    If a value is provided it must be numeric in the range of 100+
  521.    and the Pass Level is set to that value. Any chan-ops joining
  522.    whose access level is equal to or greater than the Pass Level
  523.    will then be required to establish a password if they have not
  524.    already done so, and use the password in order to execute
  525.    restricted bot commands.
  526.  
  527.  
  528. /*********************************************************************/
  529. /* Miscellaneous information.                                        */
  530. /*********************************************************************/
  531.  
  532. When terminating the bot using /quit /bye or /signoff you may specify
  533. a parameter of "die". If "die" is specified the bot will terminate
  534. with a return value of 1. Otherwise it will terminate with a value
  535. or 0. This is useful in scripts that restart the bot.
  536.  
  537.  
  538. /*********************************************************************/
  539. /* Configuration control file records.                               */
  540. /*********************************************************************/
  541.  
  542. The default config file name is bot.cfg. This may be overridden at
  543. startup by specifying a command line option of /c=file.name.
  544.  
  545. Any line beginning with a space or / character is considered a comment
  546. and is ignored.
  547.  
  548. All records are optional unless specifically stated otherwise. When
  549. a record is omitted that option is considered disabled or off.
  550.  
  551. Many of these parameters can be changed with bot commands. When
  552. they are changed online with bot commands the config file is updated
  553. automatically.
  554.  
  555. /*********************************************************************/
  556. /* Required configuration records                                    */
  557. /*********************************************************************/
  558.  
  559. SERVER  servername port [passwd]
  560.  
  561.    This record is required. The bot will terminate with an error if
  562.    this record is missing or it's syntax is invalid. It specifies
  563.    the IRC server to which the bot is to connect as well as the
  564.    desired port and, if required, the password for the server.
  565.  
  566. BOT     nickname username realname
  567.  
  568.    This record is required. The bot will terminate with an error if
  569.    this record is missing or it's syntax is invalid. This record
  570.    specifies the nickname, username and realname for the bot. The
  571.    real name may consist of multiple words.
  572.  
  573. /*********************************************************************/
  574. /* Optional configuration records                                    */
  575. /*********************************************************************/
  576.  
  577. ALIAS   equate tocmd             Alias a command name
  578.  
  579.    The Alias record is used to translate a specific word to a bot
  580.    command. For example, assume that the bot command character is
  581.    "!" and you want the word "calc" to be the same as if they entered
  582.    !ask, you would have an alias record of: ALIAS calc !ask
  583.  
  584. AUTOOP  on | off
  585.  
  586.    If this option is set on then chanops will be auto-oped when they
  587.    join provided that their Chop record flags are set to be auto-oped
  588.    and that PassLvl is not set at or below their user level. If this
  589.    option is set off then auto-oping will not occur regardless of
  590.    the other settings mentioned.
  591.  
  592. BOTLOG  file,name maxsize
  593.  
  594.    If this record is present the bot will maintain a internal log of
  595.    several items including all channel mode changes, all bot commands,
  596.    and the like. This internal log is written to the file "file.name".
  597.    Once the log file grows to a size greater than "maxsize" bytes it
  598.    is rewritten excluding the first 25% of the file. Therefore, no
  599.    maintenance is required for the file. The minimum value for
  600.    "maxsize" is 4096. If a smaller value is specified it will be
  601.    set to 4096.
  602.  
  603. CHAN    channel                  Channel name
  604.  
  605.    This record causes the bot to automatically join the specified
  606.    channel upon connection to the server. If not provided the bot
  607.    will simply connect to the server and not be joined to any channel.
  608.  
  609. CHOP    nick u@h lvl flg jcnt date time *
  610.  
  611.    This record defines the channel operators to the bot. These
  612.    records can be added, modified and deleted using the CHOP command.
  613.    Initially you will need one chop record defined for the master
  614.    user.
  615.  
  616.    nick - The nickname normally used by the chanop. This is used
  617.    only for displaying and updating the chop records. The actual
  618.    nickname of the user does not matter regarding them using the
  619.    bot services.
  620.  
  621.    u@h - This is the fully qualified nick!user@host.mask for the
  622.    user. Wildcards may be used in this field. This mask is used
  623.    to identify the specific user.
  624.  
  625.    lvl - This is the user level assigned to the chanop. Advanced
  626.    services are available to higher level users. See the command
  627.    section regarding which commands are available to each level.
  628.  
  629.    flg - This defines a number of flags for the user. If the flag
  630.    is upper case that feature is active. If the flag is lower case
  631.    that feature is disabled. Currently there are three flags:
  632.  
  633.       A - Autoop the user when he joins the channel.
  634.       S - This chanop is suspended and cannot receive chanop services.
  635.       P - This chanop is required to set and use a password.
  636.  
  637.    jcnt - This is the join count. The number of times the user has
  638.    joined the channel. You should set it to 0 initially. The bot
  639.    maintains this field automatically.
  640.  
  641.    date time - These fields tell the date and time the user last
  642.    joined the channel. They are maintained automatically by the bot.
  643.    If you are adding records manually you should place "Never Joined"
  644.    in these fields.
  645.  
  646.    * - The default password. You cannot edit this field directly.
  647.    You may set it using various commands to the bot. An * indicates
  648.    that no password is currently set. If you are manually editing
  649.    the chop record you should specify * here and update it later
  650.    with the Pass command.
  651.  
  652.    An example of a chop record is found at the end of this section.
  653.  
  654. CMD     @                        The Bot command ID
  655.  
  656.    This record specifies the command character for the bot. There
  657.    is no default so if it is not specified you will not be able to
  658.    enter bot commands. This may be desirable depending on how you
  659.    intend to use the bot. Note that all bot commands are prefixed
  660.    with this character. i.e. Ask would be !Ask if the command
  661.    character is defined to be !.
  662.  
  663. COMMAND command level pri|pub
  664.  
  665.    Each bot command has a minimum user level associated with it.
  666.    A user with a level below that required is unable to use that
  667.    command. These levels are shown in the command section. In
  668.    addition, each command has a flag indicating whether the command
  669.    can be executed on the open channel or only by a /msg to the bot.
  670.  
  671.    This record is used to override the default level and public/private
  672.    flag on a command by command basis. If a command is overridden then
  673.    both the level and public/private flag must be specified.
  674.  
  675. DBASE   database
  676.  
  677.    The dbase record tells the bot what the file name of the bot's
  678.    database is. If this record is not present then data base services
  679.    will fail. If you do not wish to provide database services you
  680.    should not include this record. It would also be a good idea to
  681.    disable the data base related commands by setting their access
  682.    levels higher than the highest defined user via the command
  683.    record.
  684.  
  685. DCC file.name level count comments
  686.  
  687.    The DCC record specifies a file name which resides in the bots
  688.    directory which can be DCC'ed to a requesting user via the !FTP
  689.    command providing his access level is equal to or greater than
  690.    "level". The comments are displayed to the user when they do a
  691.    !DCC LIST command.
  692.  
  693.    The "count" field is the download count for the file. It is
  694.    automatically updated by the bot. If you are editing this
  695.    record directly specify 0 for the count.
  696.  
  697.    Note that the file must reside in the bot's directory. The file
  698.    name must not contain any ":" or "\" characters or any DCC
  699.    requests will fail. This restriction is a security precaution
  700.    so that the bot cannot be used to obtain other files from the
  701.    machine where the bot executes.
  702.  
  703. FPUB    msgs secs                Public flood values
  704. FBOT    msgs secs ignoresecs     Bot flood values
  705. FPACE   bytes msgs secs          Pacing values
  706. FMASS   cmds secs ignoresecs     Mass flood values
  707.  
  708.    These records establish the bots flood protection parameters.
  709.    See the FLOOD command for a detailed description.
  710.  
  711. JOINCMD command
  712.  
  713.    This option is used to automatically execute a command when
  714.    the bot joins the channel. It can be used to get op's from W.
  715.  
  716. KICK    phrase
  717.  
  718.    This option is used to automatically kick a user from the
  719.    channel if they type the indicated word or phrase on the
  720.    open channel.
  721.  
  722. LOCK    on | off | all
  723.  
  724.    This record is used to restrict SET commands by users. If off,
  725.    all users may set entries in the database. If on, only chan-ops
  726.    defined to the bot may set. If all, nobody can set.
  727.  
  728. LOG     on | off
  729.  
  730.    This record turns channel logginf on or off.
  731.  
  732. MODE    modeflags                Channel mode to maintain
  733.  
  734.    If this option is set then the bot will check the channel mode
  735.    every two minutes and adjust it so that the specified mode is
  736.    maintained. Additional mode flags are removed and missing mode
  737.    flags are added. e.g. MODE tn
  738.  
  739. OPKICK  text                     Kick with text if ops begged
  740.  
  741.    If this feature is specified then any user entering the !op
  742.    command who is not defined to the bot as a chanop will be kicked
  743.    from the channel with a comment of "text".
  744.  
  745. PASSLVL nnn                      Set Password Required level
  746.  
  747.    Generally user level passwords are optional. A chanop may choose
  748.    to set one or not. However, if PASSLVL is set and the user has
  749.    a level equal to or greater than the pass level value, that user
  750.    must set and use a password in order to use the chanop level bot
  751.    commands.
  752.  
  753. QUIET   on | off | ops           Quiet mode
  754.  
  755.    Normally the !ASK command can be executed on the open
  756.    channel by any user. However, if Quiet mode is set "on" then
  757.    normal users must /MSG the bot for !ASK commands. Regardless
  758.    of the Quiet mode, chan-ops can always enter the command as
  759.    public messages and have them displayed for all users.
  760.  
  761.    If Quiet Mode is set to "ops" then all commands to the bot
  762.    are ignored unless they come from a chanop.
  763.  
  764. REDIR   off | channel text       Redirect Channel
  765.  
  766.    This feature causes the bot to join an additional channel
  767.    and send the "channel text" to every user that joins that
  768.    channel. It is meant to be used to direct users to the real
  769.    channel if they might join a channel with a slightly different
  770.    name by mistake. Other bot commands are not valid on the
  771.    redirected channel.
  772.  
  773. SNDKICK text                     Kick with text if snd flood
  774.  
  775.    If this option is set any user who executes a CTCP SOUND command
  776.    to the channel will be kicked off the channel with a comment
  777.    of "text".
  778.  
  779. TOPIC   text                     Default topic text
  780.  
  781.    This feature is used to set a defalut topic. Every so often
  782.    the bot will check to see if a topic is set. If no topic is
  783.    set then the topic defined as "text" will be set. It does not
  784.    reset a topic if one is found to be set that differs from the
  785.    default.
  786.  
  787. TRACE   tracefile
  788.  
  789.    Raw IRC message traffic can be written to a trace file. This
  790.    accumulates a lot of data in a short period of time and is
  791.    therefore not generally desirable. If however, you do desire
  792.    a trace you may set it with this config record or by using
  793.    the /t=file.name command line parameter.
  794.  
  795. /*********************************************************************/
  796. /* Sample basic config file                                          */
  797. /*********************************************************************/
  798.  
  799. Server  irc.server.net 6667
  800. Bot     BotNick BotUName The Pool Bot
  801. Chan    #ThePool
  802. Cmd     @
  803. Dbase   bot.db
  804. joincmd /msg w@channels2.undernet.org pass botspw
  805.  
  806. purpose  The pool is for swimming.
  807. rule 1 [Rule 1] No shouting.
  808. rule 2 [Rule 2] No running.
  809. rule 3 [Rule 2] No jumping.
  810. rule 4 [Rule 2] No diving in shallow water.
  811.  
  812. fpace  512 1 2
  813.  
  814. chop  SuperUser *!*myuser@*.host.net 500 Asp 0 Never Joined *
  815.  
  816.