::+ban
###  $b+ban$b <hostmask> [channel] [%%<XdXhXm>] [comment]
   Adds a ban to the list of bans stored on the bot, with optional comment and
   ban time. This ban is stored with your handle as the creator, and will be
   in effect for every channel if no channel is specified. Prefixing a comment
   with '*' will set the ban sticky. Prefixing a comment with '@' will make the
   comment only visible within the bot, and not used as the ban reason. Ban
   time has to be expressed in days, hours, and/or minutes.
 
See also: bans, -ban, stick, unstick
::+chan
###  $b+chan$b <channel> [options]
   Adds a channel to the bot's channel list. If options are specified, the 
   channel will be configured with the options.
 
See also: -chan, chanset, chaninfo
::+chrec
###  $b+chrec$b <handle> [channel]
   Adds an empty channel record for the specified user so that channel lastons
   and info lines can be saved. No flags are associated with the channel.
 
See also: -chrec, chattr%{+n}, +chan, -chan%{-}
::+exempt
###  $b+exempt$b <hostmask> [channel] [%%<XdXhXm>] [comment]
   Adds an exempt to the list of exempts stored on the bot, with optional
   comment and exempt time. This exempt is stored with your handle as the
   creator, and will be in effect for every channel if no channel is specified.
   Exempt time has to be expressed in days, hours, and/or minutes.
 
See also: exempts, -exempt, stick, unstick
::+host
###  $b+host$b [handle] <hostmask> [anotherhostmask] ...
   Adds a hostmask to a user's user record. Hostmasks are used to identify your
   handle on IRC. If a handle is not specified, the hostmask will be added to
   YOUR user record. List as many hosts as wanted.
 
See also: -host, clearhosts
::+ignore
###  $b+ignore$b <hostmask> [%%<XdXhXm>] [comment]
   Adds an ignore to the list of ignores stored on the bot, with optional
   comment and ignore time. This ignore is stored with your handle as the
   creator. Ignore time has to be expressed in days, hours, and/or minutes.
 
See also: -ignore, ignores
::+invite
###  $b+invite$b <hostmask> [channel] [%%<XdXhXm>] [comment]
   Adds an invite to the list of invites stored on the bot, with optional
   comment and invite time. This invite is stored with your handle as the
   creator, and will be in effect for every channel if no channel is specified.
   Invite time has to be expressed in days, hours, and/or minutes.
 
See also: invites, -invite, stick, unstick
::+user
###  $b+user$b <handle> [hostmask] [anotherhostmask] ...
   Creates a new user record for the handle given. The new user record will
   have no flags, an optional hostmask, and a random pass/secpass.
   List as many hosts as needed.
 
See also: -user, +host, -host, cleearhosts%{+ni}, newleaf%{-}
::-ban
###  $b-ban$b <banmask or number> [channel]
   Removes the specified ban from the list of bans stored on the bot. You may
   also reference the ban by the number shown by the 'bans' command.
 
See also: bans, +ban, stick, unstick
:hub:-bot
###  $b-bot$b <bot>
   This is exactly the same as $b'%d-user'$b (it removes a user record). It is
   included for convenience.
 
See also: +user, -user%{+n}, newleaf%{-}
::-chan
### $b-chan$b <channel>
   This removes ALL information about a channel from the bot. 
 
   $f*** IMPORTANT ***$f
 
   This erases ALL information about the channel, including channel settings,
   bans, exempts, invites, and channel records for users -- $bEVERYTHING$b.
 
   $bDO NOT$b use it to have the bot temporarily leave a channel. This
   command is for abandoning a channel (e.g. the channel will have to be
   redefined and all user flags for that channel will have to be redone.
 
   If you want to do this try '%dcycle' or '%ddown'
 
See also: +chan, chanset, chaninfo, cycle, down
::-chrec
###  $b-chrec$b <handle> [channel]
   Removes a channel record for the specified user, including channel lastons,
   info lines, and flags.
 
See also: +chrec, chattr
::-exempt
   Removes the specified exempt from the list of exempts stored on the bot. You
   may also reference the exempt by the number shown by the 'exempts' command.
 
See also: exempts, +exempt, stick, unstick
::-host
###  $b-host$b <hostmask>
   Removes a host from your handle.
%{+m|m}
###  $b-host$b <handle> <hostmask> [anotherhostmask] ...
   Removes a hostmask from a user's user record.
%{-}
 
See also: +host, clearhosts
::-ignore
###  $b-ignore$b <hostmask/number>
   Removes the specified ignore from the list of ignores stored on the bot. You
   may also reference the ignore by the number shown by the 'ignores' command.
 
See also: +ignore, ignores
::-invite
###  $b-invite$b <hostmask or number>
   Removes the specified invite from the list of invites stored on the bot. You
   may also reference the invite by the number shown by the 'invites' command.
 
See also: invites, +invite, stick, unstick
::-user
###  $b-user$b <handle>
   Removes the specified handle's user record.
 
See also: +user%{+ai}, -bot%{-}%{+nai}, newleaf%{-}
::about:
###  $babout$b
   If you feel you are missing from the list feel free to contact bryan.
:leaf:act
###  $bact$b [channel] <text>
   Performs an action on the current console channel (or otherwise
   specified channel), as if the bot did it.  Just like the /me
   command in IRC.
 
See also: console
::addline
###  $baddline$b <username>
   Shows you a simple line for adding a user to another botnet with the
   same hostmasks.
 
See also: whois
::addlog
###  $baddlog$b <text>
   Adds your comment to the bot's logfile. Bot masters can go back later and
   review the log, and will see your comment (with your handle attached). This
   is useful for explaining confusing activity.
:leaf:adduser
###  $badduser$b [!]<nickname> [handle]
   Creates a new user record for a user on the channel, using their
   current hostname.  It's similar to a user msg'ing the bot 'hello'
   except that no information is sent to that user.  If the bot
   already knows someone by that nickname, and the user on the channel
   doesn't have a bot record, then it does the equivalent of an
   'ident' for that user -- except that, again, no information is
   sent to the user telling them that anything was done.
 
   If the user is using a different nickname than the bot normally
   knows her by, you can specify her "handle" (the nickname that the
   bot remembers).
 
   If you want to add a user using a static hostmask, prefix their nick
   with a '!'. i.e. '%dadduser !Lamer'
 
   The user being added is sent a NOTICE with their initial password.
 
See also: +host, -host, clearhosts%{+m}, +user, -user%{-}
:leaf:authed:
###  $bauthed$b
   Displays users who are authed on the bot for chan/msg cmds.
::away
###  $baway$b [reason]
   Marks you as "away" on the party line. Your away message will show up in
   the $b'%dwho'$b list. Saying something on the party line will automatically
   remove your "away" status, or you can type $b'%dback'$b or $b'%daway'$b by
   itself.
 
See also: back
::back
###  $bback$b
   This marks you as no longer away on the party line.
 
See also: away
:hub:backup
###  $bbackup$b
   This makes the bot write a backup of its entire user list to the disk. 
   This is useful if you feel the need to backup the userfile and channel
   settings.
 
See also: reload, save
::bans
###  $bbans$b [[channel/all/global]/wildcard]
   Shows you a list of the global bans active on the current channel, and the
   list of channel-specific bans, as well as any bans that are on the channel
   but weren't placed by the bot.
 
   Here's a sample entry;
      [ 5] *!*habib@*frys.com (perm)
           paulie: revolving check policy
           Created 15:10
 
   The number (5) can be used to reference the ban if you wish to remove it
   (see $b'-ban'$b). Next is the actual hostmask being banned. The "(perm)"
   means that the ban is "permanent": that is, it doesn't automatically expire.
   If there is an elapsed time showing instead, the time displayed is how long
   the ban has been active. These types of bans expire after two hours. The
   second line of the ban entry is the comment ("revolving check policy"), and
   who set the ban (paulie). The last line shows when the ban was added, and
   possibly the last time the ban was activated on the channel (if it's
   different from the creation time).
 
   Sometimes there will be a "!" or "*" right before the number. A "!" means
   the ban is in the bot's ban list, but is not currently on the channel. A "*"
   marks a ban which is NOT in the bot's ban list but IS on the channel.
 
   If you use 'bans' without an argument, it will show you only the bans which
   are currently active on the channel. If you use 'bans all', it will show you
   every ban in the global ban list and on the channel. If you use 'bans
   <wildcard>', it will list all bans (active or not) that match against your
   wildcard. Consider it a 'bans all' list matched against your wildcard.
 
   If you use 'bans global', a full list of bans for EVERY channel will be
   displayed, including inactive/active bans on each channel. 
 
   The ban list may change according to which channel you're currently viewing
   in the console. Different bans may be active on different channels. If you
   specify a channel name, that channel will be used instead of your current
   console channel.
 
See also: -ban, +ban, console%{+m|m}, chanset, chaninfo%{-}, stick, unstick
:hub:bc:
###  $bbc$b <bot> <cmd> [params]
   See: botcmd
:hub:boot
###  $bboot$b <handle[@bot]> [reason]
   Kicks a user off the party line and displays the reason, if you specify
   one. You can also specify a bot, and attempt to boot someone from another
   bot on the botnet. You can not boot a bot owner.
:hub:botcmd:
###  $bbotcmd$b <bot> <cmd> [params]
   The specified cmd and optional parameters are executed on the specified bot, 
   all results are displayed back on DCC. For example:
     [19:29] #bryan# botcmd wtest whom ...
     [19:29] (wtest) #bryan# whom
     [wtest]  Nick
     [wtest] ----------
     [wtest] ^bryan
     [wtest] ^bryan     [idle 1h22m]
     [wtest] ^bryan     [idle 1h22m]
     [wtest] Total users: 3
 
   The bot specified can also have wildcards in it. '*' for 1 or more chars, and
   '?' for exactly 1 char. Use this cmd carefuly, and even think about placing
   a cmdpass on it.
 
   Just using '?' for 'bot' will choose a random leaf bot.
   Just using '&' for 'bot' will do the cmd on all localhub bots. (first bot in config).
 
   This cmd cannot be chained over the botnet, ie, no: '%dbotcmd [bot] botcmd [bot2] ...'
 
   There are two default aliases added for this cmd:
     bc -> botcmd
     bl -> botcmd ?
 
See also: cmdpass
::botjoin
###  $bbotjoin$b <bot> <channel> [options]
   Adds a channel to the bot's channel list. If options are specified, the 
   channel will be configured with the options.

   $bTHIS CMD IS CURRENTLY EXPERIMENTAL AND WILL NOT ACTUALLY SAVE STATE$b
   $bMEANING, ALL BOTS WILL JOIN EVENTUALLY AFTER DOING BOTJOIN$b
 
See also: botpart, +chan, -chan, chanset, chaninfo
:hub:botjump:
###  $bbotjump$b <bot> [server [port [pass]]]
   Makes the bot jump to another server. If you don't specify a
   server, it will jump to the next server in its internal list (see
   $b'%dhelp set'$b). If you specify a server, it will jump to that
   server (default port is 6667), and if that server is not in the
   internal list already, it will add it (until the bot relinks).
   Jumping servers ALWAYS makes the bot lose ops! be careful!
 
See also: jump, servers, botserver
:hub:botmsg:
###  $bbotmsg$b <bot> <nickname|#chan> <text>
   sends a private message to someone from the bot, just as if the
   bot had typed /msg.
 
See also: msg%{+n}
:hub:botnick:
###  $bbotnick$b <bot>
   The specified bot will display its current nick over DCC.
 
See also: netnick, nick
::botpart
###  $bbotpart$b <bot> <channel>
   Removes bot from the specified channel
 
See also: botjoin, +chan, -chan, chanset, chaninfo
:hub:bots
###  $bbots$b [nodename]
   Shows the list of bots currently on the botnet.
   Example:
      Bots: cEvin, ruthie, Killa1
   There is no indication of which bots are directly connected to this current
   bot. %{+n}Use $b'%dwho'$b or $b'%dbottree'$b for that information.%{-}
 
   Specifying a nodename will display all bots up/down on that nodename.
   Bots with a * preceeding its name is down.
 
See also: downbots%{+n}, bottree%{-}
:hub:botserver:
###  $bbotserver$b <bot>
   The bot will display its current server and lag over DCC.
 
See also: netserver, servers%{+n}, set%{-}
:hub:botset:
###  $bbotset$b <bot> [<+/->list] [<var> [data|-]]
   Set's a bot specific entry.
   NOTE: 'set' and 'botset' have different entries. 
   If there is a botset entry for 'name' and a set entry for 'name', 
   the bot will use the 'botset' entry. Otherwise, the 'set' entry
   will be used for all options.
 
   The <var> may have wildcards. Wildcards will only be used for listing
   variable, not for setting.
 
   See 'set' for a full help listing.
 
See also: set
:hub:bottree
###  $bbottree$b
   Shows a tree-format diagram of the bots currently on the botnet. It's just a
   nice way to get a feel for how the bots are physically connected. If 2 bots
   are sharing, a + will be indicated, or a ? if nothing is known.
 
   Some bots are colored if you have colors on (see '%dhelp color')
   Yellow: hubs (Do not come on IRC)
   Red: localhubs (first bot in binary, see '%dhelp conf')
   Other: normal leaf bots
 
See also: bots, downbots
::botversion:
###  $bbotversion$b <bot>
   The bot will display its pack version and uname.
 
See also: version, netversion, about%{+m|m}, status%{-}
:hub:chaddr
###  $bchaddr$b <bot> <address[:bot port[/user port]]>
   Changes the address for a bot. This is the address your bot will try to
   connect to when linking. If the bot has a separate port for bots and users,
   they should be separated  by a slash (/).
%{+a}
   It is not recommneded that this is used, you should change your source,
   and update all bots instead.
%{-}
 
See also: link
::chaninfo:
###  $bchaninfo$b <channel>
   This lists all the settings for the bot on the given channel.
   It shows any of the following:
        $bchanmode$b   These modes are enforced on the channel. Both + and -
                   modes can be enforced.
%{+m|m}
        $bauto-delay$b        Amount of seconds to wait before auto opping,
                              or auto voicing a client based on flags or
                              +voice
        $blimit$b             If this is set, the +l bot will raise the limit 
                          to the users in the channel + this ammount. Set to 
                          0 to disable.
        $bclosed-ban$b        Set this to 1 to ban users who join +closed 
                          channels. This is probably not needed though, as
                          +closed maintains +i.
        $bclosed-invite$b     If a channel is set +closed and this is set
                          force the channel to always be +i, otherwise don't.
        $bclosed-private$b    If a channel is set +closed, the bots will
                          enforce +p as well. The point is to notice the chan
                          and bots when an /invite is done. This is useful in 
                          seeing when a shell is hijacked ;)
        $bban-time$b          Set here how long temporary bans will last (in
                          minutes). If you set this setting to 0, the bot will
                          never remove them. (This also requires +dynamicbans)
        $bexempt-time$b       Set here how long temporary exempts will last (in
                          minutes). If you set this setting to 0, the bot will
                          never remove them. The bot will check the exempts
                          every X minutes, but will not remove the exempt if a
                          ban is set on the channel that matches that exempt.
                          Once the ban is removed, then the exempt will be
                          removed the next time the bot checks. Please note
                          that this is an IRCnet feature.
        $bflood-exempt$b      Should clients be exempt from flood checks based
                              on their channel status? (not deop/kick floods)
                              Valid values are:
                              None/0         Stick to regular checking (+x)
                              Op/1           Ops are exempt from flood checks
                              Voice/2        Voices are exempt from flood checks
 
        $bflood-lock-time$b   How long in seconds to keep the channel locked
                         during drone floods.
 
        $binvite-time$b       Set here how long temporary invites will last (in
                          minutes). If you set this setting to 0, the bot will
                          never remove them. The bot will check the invites
                          every X minutes, but will not remove the invite if a
                          channel is set to +i. Once the channel is -i then the
                          invite will be removed the next time the bot checks.
                          Please note that this is an IRCnet feature.
        $bvoice-non-ident$b   If channel is +voice, clients without an ident will 
                          be voiced. Set to 0 to not voice clients without ident.
 
   The following options chose how to respond to specific events.
        Each can be set as any of the specified options.
        ignore/0           Ignore
        deop/1             Deop (chattr +d)
        kick/2             Kick (chattr +k)
        delete/remove/3    Remove user
      
      $bbad-cookie$b             Missing or invalid cookie in bot op line.
      $bmanop$b                  Users who op manually.
      $bmdop$b                   Users who mass deop.
      $bmop$b                    Users who mass op in a -mop chan.
 
   The following can be set + or - (e.g. '%dchanset #channel -enforcebans')
        $bautoop$b         Bots that are +y will auto-op all users with 
                       op access to the channel.
        $bbackup$b         Make backup-bots (+B) join when set.
        $bbitch$b          Only let users with the +o flag have op on the
                       channel?
        $bbotbitch$b       Only let $bbots$b with the +o flag have op on the
                       channel?
        $bclosed$b         Kick all people who join channel unless they have
                       op access for the channel.
        $bcycle$b          Bot will attempt to cycle the channel when opless
                       or during splits to gain ops.
        $benforcebans$b    When a ban is set, kick people who are on the channel
                       and match the ban?
        $bfastop$b         Setting this will disable cookie-ops. You may
                       know cookie-ops as an annoying way of bots opping 
                       themselves with +o-b bot *!*@fjdifgjdsgiufufdhgfudghfdgfdg,
                       but, with -fastop (cookie-ops enabled), opping is much
                       more secure and the chances of someone hijacking the bot
                       for ops in your channel are much much less. This is
                       highly recommened to always be set. 
                       
        $binactive$b       This prevents the bot from joining the channel (or
                       makes it leave the channel if it is already there). It
                       can be useful to make the bot leave a channel without
                       losing its settings, channel-specific user flags,
                       channel bans, and without affecting sharing.
        $bknock$b          Bots which are +y will auto-invite any user who
                       does a /knock on the channel.
                       This will invite any user who is not set to auto-kick.
        $bmeankicks$b      Use mean/offensive kicks/bans in the channel.
        $bnodesynch$b      Allow non-ops to perform channel modes? This can stop
                       the bot from fighting with services such as ChanServ, or
                       from kicking IRCops when setting channel modes without
                       having ops.
        $bnomassjoin$b     If more than 6 clients join in 1 second, set +im
                           for 2 minutes. (Could be triggered from net-split
                           rejoin if clients hop servers and change nicks)
        $bprivate$b        This by far is probably the single most unique and
                       important feature of this pack. With this set, users with
                       global +o will not implicitly have access to the channel.
                       They will need to have channel |o flag to have access.
                       Users with global +n override this as they should have
                       control over the entire botnet and where it goes.
                       Users who lose access to a channel because of this setting
                       will see no reference to it over the botnet in any place.
                       The +o restriction goes for +v as well.
        $btake$b           Once a bot is opped, it will mass op all other bots
                       in the channel. After that, they will all attempt to 
                       mass deop in hopes 'taking' the channel. :)
        $bvoice$b          This feature is somewhat experimental. With it set
                       the +y bot will voice ALL people who join the channel
                       unless they are +q globally or +q for the channel.
                       If a botnet master devoices them, they will remain 
                       devoiced no matter who voices them.
        $bdynamicbans$b    Only activate bans on the channel when necessary?
                       This keeps the channel's ban list from getting
                       excessively long. The bot still remembers every ban,
                       but it only activates a ban on the channel when it sees
                       someone join who matches that ban.
        $buserbans$b       Allow bans to be made by users directly? If turned
                       off, the bot will require all bans to be made through
                       the bot's console.
        $bdynamicexempts$b Only activate exempts on the channel when
                       necessary? This keeps the channel's exempt list from
                       getting excessively long. The bot still remembers every
                       exempt, but it only activates an exempt on the channel
                       when it sees a ban set that matches the exempt. The
                       exempt remains active on the channel for as long as the
                       ban is still active.
        $buserexempts$b    Allow exempts to be made by users directly? If
                       turned off, the bot will require all exempts to be made
                       through the bot's console.
        $bdynamicinvites$b Only activate invites on the channel when necessary?
                       This keeps the channel's invite list from getting
                       excessively long. The bot still remembers every invite,
                       but the invites are only activated when the channel is
                       set to invite only and a user joins after requesting an
                       invite. Once set, the invite remains until the channel
                       goes to -i.
        $buserinvites$b    Allow invites to be made by users directly? If turned
                       off, the bot will require all invites to be made through
                       the bot's console.
   The following are flood settings, they are set via '%dchanset <channel>
   flood-type number:seconds', where number and second are integers
   indicating the number of times in how many seconds the flood will be
   triggered. Setting one of these to 0:0, 0:1, or 1:0 will deactivate the
   respective flood setting.
        $bflood-chan$b  Set here how many channel messages in how many seconds
                    from one host constitutes a flood. Setting this to 0 or 0:0
                    disables text flood protection for the channel.
        $bflood-ctcp$b  Set here how many channel ctcps in how many seconds from
                    one host constitutes a flood. Setting this to 0 or 0:0
                    disables ctcp flood protection for the channel.
        $bflood-join$b  Set here how many joins in how many seconds from one
                    host constitutes a flood. Setting this to 0 or 0:0 disables
                    join flood protection for the channel.
        $bflood-kick$b   Set here how many kicks in how many seconds from one
                    host constitutes a flood. Setting this to 0 or 0:0 disables
                    kick flood protection for the channel.
        $bflood-deop$b   Set here how many deops in how many seconds from one
                    host constitutes a flood. Setting this to 0 or 0:0 disables
                    deop flood protection for the channel.
        $bflood-nick$b   Set here how many nick changes in how many seconds from
                    one host constitutes a flood. Setting this to 0 or 0:0
                    disables nick flood protection for the channel.
        $bflood-mjoin$b  Set how many joins in how many seconds before triggering
                    a lockdown for mass join. ($bnomassjoin$b must be set).
   These can all be changed simultaneously with $bflood-*$b
 
See also: %{-}%{+n}+chan, -chan%{-}%{+m|m}, chanset%{-}
:leaf:channel
###  $bchannel$b [channel-name]
   Shows you an extensive display of the users on a channel, and
   the current channel attributes.  By default, it shows you the
   channel you are currently viewing on the console, but you can
   specify another channel if you wish.
 
   The first line will look like:
      Channel #hiya, 8 members, 45 users, mode +tn:
   This means that the bot is sitting on channel #hiya, where 8
   other irc'ers are.  There are 45 people that the bot knows by
   hostmask, and the channel mode is +tn.  If the bot isn't on
   the channel it is supposed to be on, it will say "Desiring
   channel #hiya" instead.  Next is a list of the users on the
   channel, with each entry looking like this:
       NICKNAME  HANDLE    JOIN   HOPS IDLE  USER@HOST
      @kantSF    kantSF    14:53 o 2 6m  josh@random.edu
   The "@kantSF" means that the user's nickname is kantSF and that
   he is a chanop.  The second "kantSF" is the nickname that the
   bot knows him by.  Sometimes this will differ from the nickname
   a person is using.  The time displayed is the time the user
   joined the channel.  The next field is the attributes:
      n - bot owner                      o - can get ops (+o)
      m - bot master or owner            b - another bot
      d - cannot get ops (+d)
   The last field is the user@host he is using irc from.
 
See also: status, whois
::channels:
###  $bchannels$b %{+m}[user]%{-}
   Displays channels that you have access to, and any important 
   flags that are set on them.
%{+m}
   Masters: You can specify other users to see what channels their 
            flags grant them access to.%{-}
See also: whois%{+m}, chattr, chaninfo%{-}
::chanset
###  $bchanset$b <channel> <settings>
   Allows you to change the channel settings (see $b'chaninfo'$b for the
   settings) for one specific channel or all channels. Use '*' to to apply the
   change to all channels.
   Changes are used until the next restart, and are saved
   whenever the userfile is saved.
 
See also: %{+n}+chan, -chan%{-}, chaninfo
::chat
###  $bchat$b <on/off>
###  $bchat$b <[*]channel number/name>
   Changes your current channel on the partyline. When you first connect to
   the partyline, it places you on channel 0 (the main party line).
   Some channels may have assigned names if the assoc module is loaded. For
   these, you can specify the channel by name instead of channel number if
   you wish.
   $b'%dchat off'$b removes you from all channels, including the main party line.
   You can still use bot commands and see the console, but you can't talk to
   anyone. $b'%dchat on'$b returns you to the main party
   line (channel 0) if you were elsewhere.
   If you prefix the channel with a '*', you will join a local channel.
 
See also: console
::chattr
###  $bchattr$b <handle> [flags] [channel]
   This lets you view and change the flags for a user.
   For example, to give Lamer the p and f flags:
      '%dchattr Lamer +pf'
   To remove Denali from the global op list:
      '%dchattr Denali -o'
   You may also do any combination of the above:
      '%dchattr Fred1 -m+xj-o'
   You can also change the flags for Usagi on a specific channel by supplying
   the channel after the attributes:
      '%dchattr Usagi -m+dk-o #blah'
   Changing global and channel specific flags within the same command line is
   also possible (global +o #lamer):
      '%dchattr Bill f|o #lamer'
   Whether or not you change any flags, it will show you the user's attributes
   afterwards. To get a list of all possible flags, see $b'%dhelp whois'$b.
   $bNOTES:$b Only the owner may add or remove the 'a' (admin) or 'n' (owner) flags.
          It is pointless to -a a permanent owner.
          You must remove the permanent owner in the binary.
 
See also: whois
:hub:checkchannels
###  $bcheckchannels$b
   This will make all leaf bots display which channels they are currently
   not in but *should* be in.  This command will not show channels which
   the bot is not active in due to '$bbotpart$b'.
 
See also: botcmd, channels, channel, status
:hub:chhandle
###  $bchhandle$b <oldhandle> <newhandle>
   Changes the handle of a user. For example, to change the handle of user
   'gavroche' to 'jamie', you would use 'chhandle gavroche jamie'.
 
   Perm owners may not change their handle without recompiling binaries first. 
   Bot handles cannot be changed from partyline.
 
See also: chpass%{+n}, chsecpass%{-}
::chinfo
###  $bchinfo$b <user> [channel] [info-line/none]
   Sets the information line for a user. This line is shown via the /msg
   commands $b'who'$b and $b'whois'$b. 
   If the info line begins with an '@', then it is "locked", and that user 
   may no longer change it. If the channel name is omitted, the default info 
   line is changed. If you specify 'none' as the info-line, it will be erased.
 
See also: info
:hub:chnick
See: chhandle
:hub:chpass
###  $bchpass$b <handle> [newpassword|rand]
   Changes a user's password. If you do not specify the new password, the user
   effectively no longer has a password set. A password is needed to get ops,
   join the party line, etc. If the newpassword is 'rand', a random password
   will be used.
 
   This has no affect on bots.
 
See also: chhandle%{+n}, chsecpass%{-}
:hub:chsecpass:
###  $bchsecpass$b <handle> [newpassword|rand]
   Changes a user's secpass. If you do not specify the new password, the user
   effectively no longer has a password set. A secpass is needed to auth and
   login via DCC chat. If the newpassword is 'rand', a random password
   will be used.
 
See also: chhandle, chpass
::clearhosts
###  $bclearhosts$b
   Removes all hosts from your handle.
%{+m|m}
###  $bclearhosts$b <handle>
   Removes all hosts from a user's user record.
%{-}
 
See also: +host, -host
:leaf:clearqueue
###  $bclearqueue$b <queue>
   Removes all msgs from the specified queue (mode/server/help/all)
:hub:cmdpass:
###  $bcmdpass$b <command> <pass> [newpassword]
   Places the specified pass on the cmd so that the cmd will need to be 
   followed by the specified pass whenever it is called. For example:
    '%dcmdpass whoami BLAH'
     [19:32] #bryan# cmdpass whoami ...
     Set command password for whoami to 'BLAH'
    '%dwhoami'
     Invalid command password. Use !command password arguments
     [19:33] bryan attempted !whoami with missing or incorrect command password
    '%dwhoami BLAH'
     You are bryan@hub.
     [19:33] #bryan# whoami
 
   To remove a cmdpass for a cmd, specify the old pass and do not specify a new pass
 
   ** Only permanent owners specified in the binary COMPILE config file **
   ** can use this cmd.                                                 **
::color:
###  $bcolor$b <on/off>
   Enables or disables misc coloring over DCC. mIRC or ANSI method is
   chosen automatically.
 
See also: console, echo, login, page, strip
::comment
###  $bcomment$b <user> <comment>
   Creates or changes the comment field for a user. The comment field can only
   be seen via 'whois' or 'match'. Non-masters cannot see the comment field.
   Using the comment 'none' will clear a user's comment.
::conf:
###  $bconf$b <add|del|change|disable|enable|list|set> [options]
 
   This command is used to modify the bot's local shell config. Only
   the first bot listed will be able to perform this command. Using the cmd
   on a non-'localhub' will result in an error similar to:
 
   [16:42] #bryan# botcmd wtest2 conf list
   [wtest2] Please use 'wtest' for this login/shell.
 
   Simply use the command on the bot specified.
   
    'add' uses the same syntax as the conf file:
      add <bot> [<ip|.> <[+]host|.> [ipv6-ip]]
      ip/host/ipv6-ip are all optional and/or can be replaced with '.'
     Newly added bots will start immediately, don't forget to 'newleaf'.
 
    'del' syntax is:
      del <bot>
    Deleted bots that are running will be killed.
  
    'change' syntax is the same as 'add'
 
    'disable' syntax is:
      disable <bot>
    The bot will be killed, but not removed from userlist. It will not start again
    until you use 'enable' on it.
 
    'enable' syntax is:
      enable <bot>
    The bot is enabled. (Only relevant for disabled bots designated via a prefix of '/')
 
    'list' shows all the bots currently in the config.
 
    'set' allows changing some variables in the config.
      Using with no parameters will show all changable options.
      Simply specifiy the option and new setting as follows:
      set <what> [option]
      WARNING: Options changed MAY OR MAY NOT affect bots already running,
               it is a good idea to restart all bots on the shell
               if you change any of the following: 
    $bhomedir$b, $bbinpath$b, $bbinname$b, $bportmin$b, $bportmax$b, $bpscloak$b
 
See also: newleaf
::console:
###  $bconsole$b [channel] [modes]
   Changes your console level so that you will see only the types of console
   messages that you want to. Your current console channel is the channel (that
   the bot is on) from which you can view from the party line, and which
   channel-specific commands (like 'say' and 'op') take affect on.
 
   Valid flags are:
     $bj$b  joins, parts, quits, and netsplits on the channel
     $bk$b  kicks, bans, and mode changes on the channel
     $bm$b  private msgs, notices and ctcps to the bot
     $bp$b  public text on the channel
     $bs$b  server connects, disconnects, and notices
 
%{+m}
   Masters only:
     $bb$b  information about bot linking and userfile sharing
     $bd$b  misc debug information
     $bc$b  commands
     $bo$b  misc info, etc (IMPORTANT STUFF)
     $bw$b  wallops
%{-} 
%{+n}
   Owners only (these have to be enabled in the config file via "set raw-log"):
     $be$b  errors
     $bg$b  (getin) botnet op/invite/key requests
     $bh$b  raw share traffic
     $br$b  raw incoming server traffic
     $bt$b  raw botnet traffic
     $bu$b  warnings
     $bv$b  raw outgoing server traffic
%{-} 
%{+o|o}
   The mode can also be a modifier like '+p' or '-jk' or '+mp-b'. If you omit
   the channel and modes, your current console channel and flags will be shown.
%{-} 
%{+m|m}
###  $bconsole$b <user> [channel] [modes]
   This is used to set the console level of another user. This can even be used
   on users who normally would not be able to set their own console mode.%{-}
 
See also: color, echo, login, page, strip
::crontab:
###  $bcrontab$b <status|delete|show|new> [interval]
   This command is used to manipulate the crontab entries for the user
   that the bot is running on.
 
   'status' will display the status of the crontab entry for the bot,
     for example: 
     [18:59] #bryan# crontab status
     Crontabbed
   'show' will display the current crontab entries, for example:
     [18:59] #bryan# crontab show
     Showing current crontab:
     Result:
     3,8,13,18,23,28,33,38,43,48,53,58 * * * * /usr/home/bryan/hub/hub > /dev/null 2>&1
 
     1,6,11,16,21,26,31,36,41,46,51,56 * * * * /usr/home/bryan/hub/newhub > /dev/null 2>&1
   'delete' will remove the bot's own crontab entry from the crontab list.
   'new' will make the bot add itself to the crontab list, although this is done
     automatically on startup.
::cycle:
###  $bcycle$b <channel> [delay]
   If done on the hub, makes all linked bots cycle the specified channel. 
   Otherwise, only the bot it is done on will cycle.
   Delay defaults to 10 seconds, which means bots will part and not rejoin
   until that time has passed.
 
See also: down
::date
###  $bdate$b
   Displays the time/date in local and GMT. Also displays which time zone
   is being used by the bot for internal logging.
:hub:dccstat
###  $bdccstat$b
   Displays a table-format list of all "dcc" connections in use on the bot.
   Dcc stands for "Direct Client-to-client Communication", and Eggdrop expands
   this to cover every open socket. Any type of network connection to the bot
   is considered a "dcc" connection.
   The headings of the table are:
     $bSOCK$b  the socket number of this connection (always unique)
     $bADDR$b  the ip address mask of the host the bot is connected to, if
           applicable
     $bPORT$b  the port number being used for this connection
     $bNICK$b  the handle of the user or bot, if applicable
     $bHOST$b  the hostname corresponding to the IP address, if available
     $bTYPE$b  the type of dcc connection (see below)
   The types of connections currently possible are as follows (but more are
   being added all the time):
     $bCHAT$b  dcc-chat partyline user
     $bPASS$b  user entering dcc chat (being asked for password)
     $bSEND$b  user sending a file
     $bGET$b   sending a file to a user
     $bGETP$b  pending get (waiting for the user to acknowledge)
     $bLSTN$b  telnet listening port (in place of a hostname, it will show the
           callback procedure name, or a mask of acceptable handles)
     $bT-IN$b  incoming telnet user (being asked for handle)
     $bFILE$b  user in dcc-chat file area
     $bBOT$b   connected bot (botnet connection)
     $bBOT*$b  pending bot link (waiting for acknowledgement)
     $bRELA$b  user in relay connection to another bot
     $b>RLY$b  bot being relay'd to (one for each "RELA")
     $bCONN$b  pending telnet connection (chat, relay, bot-link, etc)
     $bNEW$b   new user via telnet (entering a handle)
     $bNEWP$b  new user via telnet (entering a password)
   In addition, 'CHAT' and 'BOT' have flags listed for each connection. Capital
   letters mean that the flag is on, and lowercase letters mean that the flag
   is off. The flags for 'CHAT' are:
     $bC$b  in file area, but allowed to return to party line
     $bK$b  color is on
     $bP$b  party line access only
     $bT$b  telnet connection (instead of dcc chat)
     $bE$b  echo is on
     $bP$b  paging is on
     $b6$b  socket is ipv6
   The flags for 'BOT' are:
     $bP$b  ping sent, waiting for reply
     $bU$b  user-file sharing is active
     $bC$b  local bot initiated the connection
     $bO$b  user-file offered, waiting for reply
     $bS$b  in the process of sending the user-file
     $bG$b  in the process of getting the user-file
     $bW$b  warned this bot to stop hubbing
     $bL$b  leaf-only bot (not allowed to be a hub)
     $bI$b  bot is currently in the 'linking' stage
     $bA$b  bot is being aggressively shared with
   For 'CHAT' users, the party-line channel is also listed.
::debug
###  $bdebug$b
   Display a dump of memory allocation information, assuming the bot was
   compiled with memory debugging. It's useless to anyone but developers
   trying to find memory leaks.
::decrypt
###  $bdecrypt$b <key> <string>
   Decrypts the string using the specified key.
 
See also: encrypt, randstring, md5, sha1
:leaf:deluser
###  $bdeluser$b <nickname>
   Deletes a user record for a user on the channel, using their
   current hostname.  Channel masters can remove users so long as
   the user isn't a bot master.
 
   Channel masters may only delete users which they added.
see also: adduser%{+m}, +user, -user%{-}
:leaf:deop
###  $bdeop$b <nickname> [channel|*]
   Will remove chanop from the person you specify, so long as the
   bot is opped on that channel, and the person you specify isn't
   on the bot's list of authorized chanops. Specify * for all
   channels.
 
See also: op, console
:leaf:devoice
### $bdevoice$b <nickname> [channel|*]
   Will remove the +v voice from the person you specify, so long as
   the bot is opped on that channel. Specify * for all channels.
::die
###  $bdie$b [reason]
   This kills the bot. The bot goes offline immediately, logging who issued
   the 'die' command. You shouldn't have to use this too often. If you specify
   a reason, it is logged, otherwise the reason is "authorized by <handle>".
 
See also: suicide, conf
::dns
###  $bdns$b <hostname/ip/flush>
   Resolves the given hostname/ip
   If "flush" is the specified hostname, the cache will be flushed.
::down:
###  $bdown$b <channel>
   All linked bots will deop themselves in the specified channel. They
   will not reop for 10 seconds.
 
See also: cycle
:hub:downbots
###  $bdownbots$b
   Shows the list of bots that are NOT currently linked to the botnet.
 
   Example:
      Down bots: cEvin, ruthie, Killa1
 
See also: bots
:leaf:dump
###  $bdump$b <text>
   dumps the text to the server.  keep in mind that this bot doesn't
   run through ircII, so ircII commands will most likely not work this
   way.  they need to be raw irc codes. read rfc1459 from ftp.internic.net
   for more help.
   '$n' is replaced with the bot's irc nickname.
 
   ** Only permanent owners specified in the binary COMPILE config file **
   ** can use this cmd.                                                 **
::echo
###  $becho$b <on/off>
   Specifies whether you want your messages echoed back to you. If it's on,
   then when you say something on the party line, it will be displayed to you
   just like everyone else will see it. If it's off, then it won't happen.
 
See also: color, console, login, page, strip
::encrypt
###  $bencrypt$b <key> <string>
   Encrypts the string using the specified key.
 
See also: decrypt, randstring, md5, sha1
::exec:
###  $bexec$b <params>
   The bot will execute the specified program with each param specified,
   and display the results over DCC.
::exempts
###  $bexempts$b [[channel/all/global]/wildcard]
   Shows you a list of the global exempts active on the current channel, and
   the list of channel-specific exempts, as well as any exempts that are on the
   channel but weren't placed by the bot.
 
   Here's a sample entry;
      ! [ 3] *!test@test.com (perm)
             bryan: requested
             Created 01:15
 
   The number (3) can be used to reference the exempt if you wish to remove it
   (see $b'-exempt'$b). Next is the actual hostmask being exempted. The "(perm)"
   means that the exempt is "permanent": that is, it doesn't automatically
   expire. If there is an elapsed time showing instead, the time displayed is
   how long the exempt has been active. These types of exempts expire after one
   hour. The second line of the exempt entry is the comment ("requested"), and
   who set the exempt (bryan). The last line shows when the exempt was added, and
   possibly the last time the exempt was activated on the channel (if it's
   different from the creation time).
 
   Sometimes there will be a "!" or "*" right before the number. A "!" means
   the exempt is in the bot's exempt list, but is not currently on the channel.
   A "*" marks an exempt which is NOT in the bot's exempt list but IS on the
   channel.
 
   If you use 'exempts' without an argument, it will show you only the exempts
   which are currently active on the channel. If you use 'exempts all', it will
   show you every exempt in the global exempt list and on the channel. If you
   use 'exempts <wildcard>', it will list all exempts (active or not) that
   match against your wildcard. Consider it a 'exempts all' list matched
   against your wildcard.
 
   If you use 'exempts global', a full list of exempts for EVERY channel will be
   displayed, including inactive/active exempts on each channel.
 
   The exempt list may change according to which channel you're currently
   viewing in the console. Different exempts may be active on different
   channels. If you specify a channel name, that channel will be used instead
   of your current console channel.
 
See also: -exempt, +exempt, console%{+m|m}, chanset, chaninfo%{-}, stick, unstick
:leaf:find:
###  $bfind$b  <nick!ident@host.com>|<user>
   The bot will search through all of its channel records and look
   for the specified hostmask.  Wildcards are accepted; '*' for 1 or more
   characters, or '?' for exactly 1 character.
   If a username is specified, then the user is searched for in all the channel
   lists.
::fixcodes
### $bfixcodes$b
   This is for use in situations where the bot gets mixed up about the type
   of connection you have with it. For example, you /CTCP CHAT the bot and
   it thinks you are connecting via telnet, and you see text displayed as
   "Local time is now [1m17:17[0m" for example instead of "Local time is
   now 17:17". Use this to turn telnet codes on or off/change the display
   mode.
:leaf:getkey:
###  $bgetkey$b [channel]
   If there is a key set for channel, it is displayed. If channel is not
   specified, your console channel is used.
 
See also: console, channels%{+m}, status%{-}
::handle
###  $bhandle$b <new-handle>
   Changes your handle on the bot. This is the handle (nickname) that the
   bot will know you as from this point forward. It is used to log into the
   bot.
 
   Perm owners may not change their handle without recompiling binaries first. 
 
See also: newpass%{+mi}, chhandle, chpass%{-}%{+n}, chsecpass%{-}
::help:
###  $bhelp$b [cmd]
   Alone, will show all cmds that match your flags. With a cmd it will show
   the help entry, such as you see here. Specifying a wildcard will display
   a list of cmds (matching your flags) that match that wildcard. Use '*'
   to match 1 or more characters, and '?' to match exactly one character.
 
   This will only show the commands available on the current type of bot
   you are on. Ie, hubs and leafs have different cmds shown in '%dhelp'
:hub:hublevel:
###  $bhublevel$b <hub-bot> <level>
   Sets the hublevel for the specified hub. This command is not recommended
   for use by anyone. Instead you should change your COMPILE config file
   and update your net with new binaries.
 
   You really shouldn't use this cmd. 
See also: uplink, chaddr
::ignores
###  $bignores$b [wildcard]
   Shows a list of hostmasks from which the bot is currently ignoring msgs,
   notices, etc. There are two types of ignores: permanent and temporary.
   Permanent ignores never automatically expire. You must use $b'%d-ignore'$b
   to remove them.
   Here is a sample permanent ignore:
      [  1] *!*@217.156.44.184 (perm)
            bryan: go away
            Started 523 days ago
   The number (1) can be used to reference the ignore if you wish to remove it
   (see $b'%dhelp -ignore'$b). Next is the actual hostmask being ignored. The
   "(perm)" means that the ignore is "permanent": that is, it doesn't
   automatically expire. The second line of the ignore entry is the comment
   ("go away"), and who set the ban (bryan). The last line shows when the ignore
   was added.
   Here is a sample temporary ignore:
      [ 10] blah!blah@blah.cc (expires in 1 day)
            bryan: requested
            Started 18:02
   Here, you see the "perm" in the parentheses next to the hostmask is instead
   an expire time. This means that the ignore will expire automatically in one
   day.
   If you use $b'%dignores <wildcard>'$b, it will list all the ignores
   that match against your wildcard.
 
See also: +ignore, -ignore
::info
###  $binfo$b [channel] [info-line]
   Sets your info line. This line is shown via the /msg commands $b'who'$b and
   $b'whois'$b. If the info line begins with an '@', then it is "locked", and 
   you may no longer change it.
 
%{+m|m}See also: chinfo%{-}
:leaf:invite
###  $binvite$b <nickname> [channel|*]
   Invites someone from irc into your current console channel (or
   specified other channel).  This is most useful when the channel
   is +i.  a user with the +o flag can also request an invite from
   the bot with /MSG INVITE. Specify * for all channels.
 
See also: console, iop
::invites
###  $binvites$b [[channel/all/global]/wildcard]
   Shows you a list of the global invites active on the current channel, and
   the list of channel-specific invites, as well as any invites that are on the
   channel but weren't placed by the bot.
 
   Here's a sample entry;
      ! [ 3] *!test@test.com (perm)
             bryan: requested
             Created 01:15
 
   The number (3) can be used to reference the invite if you wish to remove it
   (see $b'-invite'$b). Next is the actual hostmask being invited. The "(perm)"
   means that the invite is "permanent": that is, it doesn't automatically
   expire. If there is an elapsed time showing instead, the time displayed is
   how long the invite has been active. These types of invites expire after one
   hour. The second line of the invite entry is the comment ("requested"), and
   who set the invite (bryan). The last line shows when the invite was added, and
   possibly the last time the invite was activated on the channel (if it's
   different from the creation time).
 
   Sometimes there will be a "!" or "*" right before the number. A "!" means
   the invite is in the bot's invite list, but is not currently on the channel.
   A "*" marks an invite which is NOT in the bot's invite list but IS on the
   channel.
 
   If you use 'invites' without an argument, it will show you only the invites
   which are currently active on the channel. If you use 'invites all', it will
   show you every invite in the global invite list and on the channel. If you
   use 'invites <wildcard>', it will list all invites (active or not) that
   match against your wildcard. Consider it a 'invites all' list matched
   against your wildcard.
 
   If you use 'invites global', a full list of invites for EVERY channel will be
   displayed, including inactive/active invites on each channel.
 
   The invite list may change according to which channel you're currently
   viewing in the console. Different invites may be active on different
   channels. If you specify a channel name, that channel will be used instead
   of your current console channel.
 
See also: -invite, +invite, console%{+m|m}, chanset, chaninfo%{-}, stick, unstick
:leaf:iop
###  $biop$b <nickname> [channel|*]
   Same as normal invite, except auto-ops them when they join.
 
See also: console, invite
:leaf:jump
###  $bjump$b [server [port [pass]]]
   Makes the bot jump to another server. If you don't specify a
   server, it will jump to the next server in it'ss internal list (see
   $b'%dhelp set'$b). If you specify a server, it will jump to that
   server (default port is 6667), and if that server is not in the
   internal list already, it will add it (until the bot relinks).
   Jumping servers ALWAYS makes the bot lose ops! be careful!
 
See also: botjump, servers, botserver
:leaf:kick
###  $bkick$b [channel|*] <nickname> [reason]
   Will kick a user off your current console channel (or specified
   other channel) with the comment given.  if you omit the reason,
   the default kick comment is "requested". Specify * for all 
   channels.
 
See also: kickban, console
:leaf:kickban
###  $bkickban$b [channel|*] [-|@]<nickname> [comment]
   Kicks a user off the channel and bans her by a reasonable host-
   mask.  your nickname will be attached to the ban in the bot's
   internal ban list, and the ban will last for whatever is set in
   ban-time -- only on this channel.  use $b'%d+ban'$b for a more
   permanent ban which will be activated on every channel the bot
   monitors.  if you use a comment, that will also be attached to
   the ban in the ban list, and used as the kick comment. Specify 
   * for all channels.
     appending a prefix of ! or @ to a nickname changes the ban
   mask used:
        e.g. with a host of nick!ident@host.name.domain
 
        command        banmask
        '%dkickban nick  *!*dent@*.name.domain'
        '%dkickban -nick *!*dent@host.name.domain'
        '%dkickban @nick *!*@host.name.domain'
 
        with a host of nick!~ident@host.name.domain (strict-host set to 1)
 
        command        banmask
        '%dkickban nick  *!*ident@*.name.domain'
        '%dkickban -nick *!*ident@host.name.domain'
 
See also: +ban, bans, stick
:hub:lagged:
###  $blagged$b
   Displays the bot's internal ping list of bots linked to it.
   If a pingtime goes over 30 seconds, it is delinked for
   ping timeout.
 
See also: netlag
::last:
###  $blast$b 
   Displays the 'last' output from the shell the bot is running on,
   for the user it is running as.
 
%{+i}See also: netlast%{-}
:hub:link
###  $blink$b [via-bot] <bot-to-link>
   Attempts to link to another hub.  This command is deprecated and not 
   recommended for use.
 
See also: unlink, newleaf%{+a}, -bot%{-}
::login
###  $blogin$b <banner|bots|channels|whom> [on/off]
   Sets various login options.
   Not specifying on/off will display what the setting is the for the specified
   login entry.
 
See also: echo, color, console, page, strip, whois
::match
###  $bmatch$b <attr> [channel] [[start] limit]
   This displays all user records with the attributes requested.
   "attr" is of the form:  <+/-><global>[&/|<channel>[&/|<bot>]]
   Specifying "&" as the separator will cause AND style matching.
   For example:
      '%dmatch p&o'
   This will match all users with both the "p" global flag and the "o" channel
   flag on your current console channel.
   Specifying "|" as the separator will cause OR style matching.
   For example:
     '%dmatch p|o'
   This will match all users with either the "p" global flag or the "o" channel
   flag on your current console channel. If you specify a channel, it will be
   used instead of the current console channel.
   For example:
     '%dmatch p|o #eggdrop'
   This will match all users with either the "p" global flag or the "o" channel
   flag on the channel #eggdrop. You can also match bot flags.
   For example:
     '%dmatch o|o|h'
   This will match all bots with either the "o" global flag, the "o" channel
   flag on the current console channel, or the "h" botflag. You can also limit
   the number of total results returned by specifying a limit at the end of the
   command. A starting point can also be specified.
   For example:
     '%dmatch p&o #eggdrop 16 25'
   This would show results 16 through 25 matching any users with the "p" global
   flag or the "o" channel flag on #eggdrop.
###  $bmatch$b <wildcard-string> [[start] limit]
   This displays all user records where the user's handle or any of the user's
   hostmasks match the specified wildcard string. You can also limit the number
   of total results returned by specifying a limit at the end of the command. A
   starting point can also be specified.
   For example:
     '%dmatch *.edu 16 25'
   This would show results 16 through 25 matching any users with a hostmask
   that ends with ".edu".

   $bThis command will not match on bots. You must use 'matchbot' for that.$b
See also: matchbot
::matchbot
###  $bmatchbot$b 
   Matches bots.
 
See also: match
::md5
###  $bmd5$b <string>
   Returns the MD5 hash of the specified string.
 
See also: randstring, sha1, encrypt, decrypt
::me
###  $bme$b <text>
   Performs an action on the party line. This appears as "* bryan is leaving",
   etc.
:leaf:mmode:
###  $bmmode$b <(+|-)MODE> <#channel> <a|o|v|d|r> [bots=n] [alines=n] [slines=n] [overlap=n] [bitch] [simul] [local]
   For those of us who do not wish to be rocket scientists in the mass mode department, 
   a simple '%dmmode -o #channel o' will suffice.
 
   This is a distributed mass mode command.
   The modes will be distributed among the necesary bots to accomplish the task.
   **Remember, unless specified with [local], the bot you mmode on will never participate.**
 
   options:
 
     $ba$b = $ball.$b
     $bo$b = $bops.$b
     $bO$b = $buser-op.$b
     $bv$b = $bvoices.$b
     $bd$b = $bnon-ops.$b
     $br$b = $bregulars (-ov).$b
 
     $bbitch$b   - set +bitch after finished with mmode.
     $bsimul$b   - Simulates the mmode. IE: Gives you a practice run, will show who 
                   does what in the dcc chat window.
     $blocal$b   - Modes will not be distributed: Ran on local bot only.
                   Use this with caution, and do not expect good results.
 
     =============================================================================
     don't bother setting the following options unless you REALLY know what you're 
     doing, and don't bother messaging me asking me how to use them if you don't.
     =============================================================================
     $bbots$b    - Number of bots to use.
     $balines$b  - Number of MODE lines to assume each participating bot will get through.
     $bslines$b  - Number of MODE lines each participating bot will send.
     $boverlap$b - Number of times to mode on each target nick (using alines for calc).
 
   bots, alines, slines and overlap are dependant on each other, set them wrong and
   the bot will complain. 
  
   Defaults are alines=1, slines=5, overlap=1. alines will be increased up to 5 if 
   there are not enough bots available.
 
   Examples:
 
     To mass deop (old style '%dmdop')
      '%dmmode -o #chan o overlap=2'
     To mass voice non-ops
      '%dmmode +v #chan d'
     To mass voice non-ops and non-voices
      '%dmmode +v #chan r'
 
See also: mop
:leaf:mop:
###  $bmop$b <channel|*>
   Bot will op all users in the specified channel that are valid ops
   for the channel. If '*' is specified, the bot will scan all channels
   and op all users in all channels that are valid ops in each chan.
 
See also: whois
::motd
###  $bmotd$b %{+m}<message>%{-}
   This redisplays the partyline Message Of The Day, which was shown when you
   first joined the partyline.
%{+m}+m: Inclue a message to set the motd.%{-}
:leaf:msg
###  $bmsg$b <nickname> <text>
   Sends a private message to someone from the bot, just as if the
   bot had typed /msg.
 
See also: botmsg%{+n}
:hub:netcrontab:
###  $bnetcrontab$b <status|delete|show|new> [interval]
   Runs the specified command on all linked bots.
   See: crontab
:hub:netlag:
###  $bnetlag$b
   Pings all bots over botnet, and displays results.
 
See also: lagged
:hub:netlast:
###  $bnetlast$b
   All bots on the botnet will display an output from 'last' on 
   the user that they are currently running as.
 
See also: last
:hub:netnick:
###  $bnetnick$b 
   All bots on the botnet will display their nick over DCC.
 
See also: botnick, nick
:hub:netps:
###  $bnetps$b [ps-param]
   Will run 'ps' on each bot on the botnet and returned the
   results. If a params are specified, each bot will use those
   on 'ps'.
 
See also: ps
:hub:netrontab:
###  $bnetcrontab$b <status|delete|show|new> [interval]
   Runs the specified crontab command on all linked bots.
   See: crontab
:hub:netserver:
###  $bnetservers$b 
   All bots on the botnet will display their current server and lag
   to that server over DCC.
 
See also: botserver, servers%{+n}, set%{-}
:hub:netversion:
###  $bnetversion$b <bot>
   All bots on the botnet will display their pack version, and uname.
 
See also: botversion, version, about%{+m|m}, status%{-}
:hub:netw:
###  $bnetw$b
   All bots on the botnet will run 'w' on their shell and display
   the results over DCC.
 
See also: w
:hub:newleaf:
###  $bnewleaf$b <handle> [hostmask] [anotherhostmask] ...
   Adds a new leaf to the botnet with the specified handle and hostname.
   Any number of hosts can be specified in the cmd.
 
   The binary config botline will also be outputted, but should be
   checked for correctness.
::newpass
###  $bnewpass$b <password|rand>
   Changes your password on the bot. This is similar to the '/msg <bot> pass'
   command, except you don't need to specify your old password. If the 
   newpassword is 'rand', a random password will be used.
 
 
%{+mi}See also: chpass%{-}%{+n}, chsecpass%{-}
::nick
See: handle
::nick:
###  $bnick$b <bot>
   The bot will display its current nick over DCC.
 
See also: botnick, netnick
:hub:nopass
###  $bnopass$b [anything]
   Displays all users who do not have a password set.
 
   Specify any argument to give random passes to users.
 
%{+mi}See also: chpass%{-}
:leaf:op
###  $bop$b <nickname> [channel|*]
   Will grant chanop to the person you specify, so long as the bot
   is opped on that channel, and the person you specify isn't being
   actively deopped by the bot. Specify * for all channels.
 
See also: deop, console
::page
### $bpage$b <number/off>
   This allows you to slow down the number of lines the bot sends you at once
   via the partyline. When enabled, any commands that send greater than the
   specified number of lines will stop when that number is reached and wait for
   you to type another command (or press enter) to continue. If you have too
   many pending lines, you may be booted off the bot.
 
See also: color, console, echo, login, strip
::ps:
###  $bps$b [ps-param]
   Will run 'ps' on the bot's shell and display any results. If
   any params are specified, they will be used.
 
%{+i}See also: netps%{-}
::quit
###  $bquit$b [comment]
   This disconnects you from the partyline. If you specify a comment, it will
   be displayed to other partyline users as you leave.
::randstring
###  $brandstring$b <len>
   Displays a random string of length 'len' up to 300 chars.
 
See also: md5, sha1, encrypt, decrypt
::rehash
###  $brehash$b 
   Don't use this cmd, it doesn't do what you think it does, and can result
   in the bot behaving very oddly.
 
   Reloads config data from binary. (Probably won't be needed as this is 
   automatically updated after editing the binary with -C)
 
See also: restart
::relay
###  $brelay$b <bot>
   Relays you via telnet to another bot, whether or not it is currently linked.
   The local bot must, however, have a bot record for the bot you wish to
   relay to. Typing '%dquit' or "*bye*" on a line by itself will end the relay.
 
See also: bots%{+n}, newleaf%{-}%{+a}, -bot%{-}
::reload
###  $breload$b
   Reloads the bot's user file, discarding any changes made since the last
   $b'%dsave'$b command or hourly user file save.
 
See also: save
:leaf:reset
###  $breset$b [channel]
   Clears out the bot's channel information and makes it gather the
   information from the server all over again, as if it had just
   joined that channel. It's not really useful much, but could be
   if an odd bug causes the channel information to get scrambled.
   unfortunately this command used to get a lot of use. You can omit
   the channel name to make it reset ALL channels.
 
See also: resetbans, resetexempts, resetinvites
:leaf:resetbans
###  $bresetbans$b [channel]
   Resets the bot's ban list for the channel. any bans on the channel
   that aren't in the ban list (either the global list or the local
   channel ban list) will be removed, and if there are any bans in the
   global ban list or channel ban list that are not currently on the
   channel, they will be added.
 
See also: bans, console%{+m|m}, reset%{-}
:leaf:resetexempts
###  $bresetexempts$b [channel]
   Resets the bot's exemption list for the channel. this command
   behaves exactly like resetbans, except it is for exempts.
 
See also: resetbans, resetinvites
:leaf:resetinvites
###  $bresetinvites$b [channel]
   Resets the bot's invitation list for the channel. this command
   behaves exactly like resetbans, except it is for invites.
 
See also: resetbans, resetinvites
::restart
###  $brestart$b
   Makes the bot restart, but keeps it's connection to IRC active.
 
See also: rehash, reload, save
:hub:save
###  $bsave$b
   This makes the bot write its entire userfile to disk. This is useful if you
   think the bot is about to crash or something, since the user file is only
   written to disk about once an hour.
 
See also: reload, backup
:leaf:say
###  $bsay$b [channel] <text>
   Dumps the text to your current console channel (or other specified
   channel), as if the bot "said" it.
::secpass:
###  $bsecpass$b <password|rand>
   Changes your secpass on the bot. This is used for Authing via /msg
   and for DCC. If the password is 'rand', a random password will be used.
 
%{+mi}See also: chpass%{-}%{+n}, chsecpass%{-}
:leaf:servers
###  $bservers$b
   Lists the servers that the bot has in its server list.  this is
   the list it rotates through when changing servers.  it starts
   with a static list which it loads from its config-file when the
   bot is booted up.  after that, you can add servers with the
   $b'%djump'$b command.  the server list will indicate which server the
   bot is currently on.
:hub:set:
###  $bset$b [<+/->list] [<var> [data|-]]
   Sets various options. Type alone to see all set entries. To set
   an entry do '%dset name VALUE'. Use '-' as a value to clear an entry.
 
   The <var> may have wildcards. Wildcards will only be used for listing
   variable, not for setting.
 
   The '+' may be used to add 1 element to a comma separated list. (ie, servers)
   The '-' may be used to remove 1 element from a comma separated list. (ie, servers)
   The 'list' may be used to list a comma separated variable as a vertical listing. (like '%dservers')
 
 
   Current variables:
 
   $uB$u:    Boolean (0/1/true/on/false/off)
   $uS$u:    String
   $uN$u:    Number
   $uL$u:    List capable
   $uR$u:    Rate. Set as 'number:interval', ie, '1:5'
   $uD$u:    Detected vars have the folloing options: $bignore$b/0, $bwarn$b/1, $breject$b/2, 
                                                      $bdie$b/3, $bsuicide$b/4
 
[SL] $balias$b           List of dcc aliases in format '<alias> <cmd> [parms]'. First
                          matching alias is used. Normal flag checking is done
                          after the alias is expanded. 
                          $bAliases may not reference other aliases.$b
[S]  $bchanset$b         List of default options for when a channel is added. Same format 
                          as 'chanset'.
[N]  $bserver-port$b     Default port to use for server connections.
[B]  $bauth-chan$b       If set, auth cmds will work in channels as well as in msg, otherwise 
                          only in msg.
[S]  $bauth-key$b        The authkey used during authing. Give to users if they need to auth. 
                          (can be bot specific)
[C]  $bauth-prefix$b     The prefix character used for msg cmds, ie: $u!$uop or $u.$uop
[B]  $bauth-obscure$b    Will not halt on dcc login if pass is wrong. Will display auth hash..
                          Will always fail at hash though.
[N]  $bdcc-autoaway$b    Time in seconds until a user is set auto-away on dcc.
                          (0/- to disable)
[B]  $bmanop-warn$b      Warn users via /NOTICE when they msg-op in a channel with manop
                           punishments.
 
  *  Msg cmd vars may be left blank to disable usage of cmd.
[S]  $bmsg-op$b          Defines the cmd for opping via msging the bot.
[S]  $bmsg-pass$b        Defines the cmd for setting a pass via msging the bot.
[S]  $bmsg-invite$b      Defines the cmd for requesting invite via msging the bot.
[S]  $bmsg-ident$b       Defines the cmd for identing via msging the bot.
 
[N]  $bfork-interval$b   Number of seconds in between each fork() call made by the bot. 
                          (Resets PID/CPU)
[R]  $bflood-msg$b       Msgs:Secs until a host is ignored. (0:0 to disable) 
[R]  $bflood-ctcp$b      Ctcps:Secs until a host is ignored. (0:0 to disable) 
[R]  $bflood-g$b         Msgs:Secs until triggering to set +g for 60 seconds (0:0 to disable)
 
[D]  $blogin$b           How to handle someone logging in to the shell.
[D]  $btrace$b           How to handle someone tracing/debugging the bot.
[D]  $bpromisc$b         How to handle when an interface is set to promiscuous mode.
[D]  $bhijack$b          How to handle when a commonly used hijack method attempt is detected. 
 
[SL] $bservers$b         Comma-separated list of servers the bot will use.
[SL] $bservers6$b        Comma-separated list of servers the bot will use (FOR IPv6).
 
[S]  $brealname$b        The bot's "real name" when connecting. (supports '$n' expansion)
[S]  $busermode$b        The bot's usermode on IRC. (Set on connect/rehash)
 
[S]  $baltchars$b        Define string of characters to cycle when generating alternative
                          nicks when nick is taken. Ie: _-`[].
[S]  $bjupenick$b        The bot will attempt to jupe this nick. It will never use a variation
                         of the nick though. It will still prefer 'nick' over a variation
                         of jupenick.
[S]  $bnick$b            The bot's preferred nickname on IRC. It will auto rotate and append
                         'altchars' on the end if taken.
[N]  $bnotify-time$b     The number of seconds between server notify checks for nick.
 
[B]  $birc-autoaway$b    Should the bot go away auto?
 
[B]  $bident-botnick$b   Send botnick instead of shell username on connect (non-ident)
[B]  $boidentd$b         Make bot try and use oidentd spoofing as BOTNICK.

[B]  $blink_cleartext$b  Allows bots to link without an encryption scheme. This is needed
                         for allowing older bots to link in. Be sure to never leave this on
                         unless upgrading or letting an older bot link in to upgrade.

[B]  $bdccauth$b         Boolean (0 or 1). Set to use auth checking on dcc/telnet login.
[N]  $bop-bots$b         Number of bots to ask every time an oprequest is to be made.
[N]  $bin-bots$b         Number of bots to ask every time an inrequest is to be made.
 
[R]  $bop-requests$b     (requests:seconds) limits how often the bot will ask for ops.
[R]  $bclose-threshold$b (H:L) When at least H hubs but L or less leafs are linked, close 
                          all channels.
 
[N]  $blag-threshold$b   Maximum acceptable server lag for the bot to send/honor requests.
[N]  $bkill-threshold$b  When more than this many bots have been killed/klined in the last
                          minute, close all channels.
[N]  $bfight-threshold$b When more than this many +ob/-ob/kicks have happened on a channel in 
                          1 minute, the channel is closed.
 
[N]  $bcloak-script$b    Decides which script the bot cloaks as. 
                          If set to 0, a random script will be used.
                          1=plain bitchx, 2=crackrock, 3=neonapple, 4=tunnelvision, 
                          5=argon, 6=evolver, 7=prevail 8=cypress 9=mIRC 10=other
 
 * $bExamples$b:
 
    '%dset realname I have no realname, I'm a bot!'
    '%dbotset wraith realname The best pack evar!'
    '%dset +servers irc.efnet.org'
    '%dset -servers irc.efnet.org'
    '%dset list servers'
    '%dset -servers 10'
    '%dbotset wraith nick -'
 
See also: botset
::sha1
###  $bsha1$b <string>
   Returns the SHA1 hash of the specified string.
 
See also: randstring, md5, encrypt, decrypt
::simul
###  $bsimul$b <handle> <text>
   This allows you to simulate the specified handle typing the given text.
   For example:
      '%dsimul dweeb%d.quit'
   This would appear just as if "dweeb" typed '%dquit'. This command will not
   work unless eggdrop has simul enabled in the config file. 
 
See also: su
::slowjoin:
###  $bslowjoin$b <channel> <interval-seconds> [channel-options]
   All bots on the botnet will join the channel at the rate of one bot
   per 'interval-seconds'. If any channel-options are specified, the 
   channel will be added with those options.
 
See also: slowpart, chanset, chaninfo
::slowpart:
###  $bslowpart$b <channel> <interval-seconds>
   All bots on the botnet will part the specified channel at the rate
   of one bot per 'interval-seconds'
 
%{+n}See also: slowjoin%{-}
::status
###  $bstatus$b
###  $bstatus all$b
   Displays a condensed block of status information about the bot.
   is running. For example:
      [01:15] #bryan# status
      I am wtest, running [wraith] Wraith 1.2.3-cvs:  274 users
      Online for 00:33  (terminal mode)  CPU 00:01  cache hit 28.3%
      OS: Linux 2.4.30
      Running from: /home/wheel/bryan/.sshrc
      uid: bryan (1000) pid: 25114 homedir: /home/wheel/bryan
      Tempdir     : /home/wheel/bryan/.ssh/.../
          Channels: #|DAWG|Net, #|DAWG|Tcl
          Online as: D|Anakha!wcc@cia.nu (|DAWG|Anakha - |DAWG|Net)
          Server irc.inet.tele.dk:6667 (connected for 11 days)
          #|DAWG|Net:  6 members, enforcing "+istn" (lurking)
          #|DAWG|Tcl: 42 members, enforcing "+tn" (lurking)
 
 
   The first line tells you the bot's name, what version of Eggdrop it's
   running, the number of users the bot has records of, and the amount of
   memory being used by the userfile. The second line tells you the uptime of
   the bot, CPU time, and cache hit. The third shows the bot's admin, and the
   forth shows its current config file. The fifth line shows what operating
   system the bot is running on. The next two lines show Tcl information. If
   debug mode is enabled, additional info may be shown. Sharing information
   will also be shown if it's being used.
 
   Select information from modules will be displayed after the core
   information. If you use $b'%dstatus all'$b instead, you will see all status
   information available from loaded modules.
 
See also: channel, channels%{+a}, debug%{-}
::stick
###  $bstick$b [ban/exempt/invite] <hostmask/number> [channel]
   Makes a ban, exempt, or invite "sticky". This means that the bot will always
   try to keep it active on the channel. Obviously, if the channel isn't using 
   dynamic bans, this has no effect.
 
See also: bans, exempts, invites, unstick, +ban, +exempt, +invite
::store
###  $bstore$b
   Stores your console settings so that they are restored automatically the
   next time you join the party line. ('console' calls this auto)
 
See also: console
::strip
###  $bstrip$b [modes]
   Allows you to remove embedded 'attribute' codes your partyline output. Valid
   options are:
      $bb$b - remove all boldface codes
      $bc$b - remove all color codes
      $br$b - remove all reverse video codes
      $bu$b - remove all underline codes
      $ba$b - remove all ANSI codes
      $bg$b - remove all ctrl-g (bell) codes
   The mode can also be a modifier like '+c' or '-bu' or '+ru-c'. If
   you omit modes, it will show your current setting.
 
   NOTE: THIS CMD DOES NOT AFFECT ALL COLORS, PLEASE SEE '%dhelp color' 
 
See also: fixcodes, color, echo, login, page
%{+m}
###  $bstrip$b <user> [modes]
   Set the strip level of another user. A master can't set their own strip
   flags without prefixing the modes with a '+' or '-'.%{-}
::su
###  $bsu$b <user>
   Lets you assume the identity of another user. If you are a global owner,
   this does not require a password. Otherwise, you will be asked for the
   user's password. $b%dquit$b returns you to your original handle.
::suicide
###  $bsuicide$b [reason]
   Makes bot remove itself and then dies. If bot is first bot in it's binary
   it will kill all bots running for that binary.
 
See also: die, conf, botcmd
:leaf:swhois
###  $bswhois$b [server/nick] <nick>
   Displays a server /whois for the specified nick. Specifying
   the nick twice will display idle time. Specifying a server will 
   display the whois as viewed by that server.
   If the nick is currently not online, a /WHOWAS is done automatically.
 
   This cmd will hide restricted username/channel info as follows:
    -Username will be hidden for higher level users
    -Users will not see +private chans unless they are in the chan or chan is -sp
    -Users will not see channels that are +s or +p unless they have op access there
 
See also: find
:leaf:topic
###  $btopic$b <text>
   Changes the channel's topic, assuming the bot is a chanop or the
   channel is not +t (uses your current console channel).
 
See also: console
:hub:trace
###  $btrace$b <bot>
   Sends out a trace signal to another bot. If/when the trace signal returns,
   (and it should!) you will get an output that looks something like this:
      Trace result -> Valis:Stonewall:NoBoty:SomeBoty
 
   This is a list of the bots connected between you and the destination bot.
   It should also return the time in seconds taken for the trace to occur.
 
See also: bots, bottree
::traffic
###  $btraffic$b
   Shows total and daily net traffic stats since the last $b'%drestart'$b.
   Stats groups are IRC, Botnet, Partyline, Transfer.mod and Misc.
 
%{+m}See also: restart%{-}
:leaf:umode
###  $bumode$b <+flags>
   Sets the given usermode flags for the bot.
%{+a}
 
See also: dump
%{-}
::unlink
###  $bunlink$b <bot|*> [reason]
   This disconnects the specified bot from the botnet (assuming it was linked
   in the first place). Some bots (sharebots in particular) might not allow you
   to unlink them. If "*" is specified as the parameter, all bots will be
   unlinked.
 
See also: %{+n}link, %{-}bots, downbots%{+n}, newleaf, bottree%{-}
::unstick
###  $bunstick$b [ban/exempt/invite] <hostmask/number> [channel]
   Makes a "sticky" ban, exempt, or invite normal again.
 
See also: bans, exempts, invites, stick, -ban, -exempt, -invite
::update:
###  $bupdate$b <binary>
   The bot will attempt to start the new binary and kill itself.
   The specified binary will need to be in the same directory
   as the bot is running in.
 
See also: whois
:hub:uplink:
###  $buplink$b <bot> [uplink]
   Changed a bot's preferred botnet uplink. Leave 'uplink' blank
   to clear a bot's uplink, which will make it stay on any hub
   that it can connect to. An uplink must be a hub-bot.
 
See also: hublevel, chaddr
::uptime
###  $buptime$b
   Displays the bot's current uptime.
 
See also: status
::userlist:
###  $buserlist$b
   A list of all users is displayed. Users with higher flags than you 
   will not appear in the list.
 
See also: match, whois
::version:
###  $bversion$b
   Displays the pack version and uname.
 
See also: botversion, netversion, about%{+m|m}, status%{-}
:leaf:voice
###  $bvoice$b <nickname> [channel|*]
   Will give a +v voice to a person you specify, so long as the
   bot is opped on that channel. Specify * for all channels.
 
See also: devoice
::w:
###  $bw$b
   The output of 'w' will be displayed over DCC, bot the shell
   the bot is running on.
 
%{+i}See also: netw%{-}
::who
###  $bwho$b [bot]
   Displays a list of users on the local bot.
 
   For example:
      [23:21] #bryan# who
      Party line members:  (* = owner, + = master, @ = op)
      *bryan       telnet@xxx.atlaga.adelphia.net (idle 17m)
      *bryan       telnet@xxx.atlaga.adelphia.net
      Bots connected:
      -> wortel (05 Dec 16:32) eggdrop v1.6.15 <efnet>
 
   The first section is people on your current channel (the party line, if you
   haven't changed channels) who are on the bot. A '*' will precede the handle
   if they are a bot owner, "+" if they are a master, "%%" if they are a botnet
   master, or "@" if they are an op. The user's nickname, hostname, and
   possibly an idle time and/or away message will be displayed.%{+n} Owners
   will also see the user's dcc idx.%{-}
 
   The next section is bots directly linked to the current bot. The arrow
   indicates which bot initiated the connection. The right arrow means this bot
   connected to wortel. A left arrow means the remote bot linked to this bot. A
   '+' next to the arrow indicates that the bot is sharing userfiles with us.
   The connection time (05 Dec 16:32) and bot version are also shown, as well
   as what is specified under "network" in the config file.%{+n} Owners will
   also see the bot's dcc idx.%{-}
 
   The final section (not shown in example above) is a list of users on the
   local bot who are not on your channel. This will be omitted if there are no
   users on other channels. If you specify the name of a remote bot, for
   example $b'%dwho valis'$b, the who request will be sent to that bot instead.
   The remote bot must be linked to the botnet.
%{+m}
 
   Masters may also see "(con <flags>)" after a user's entry, which shows the
   user's console flags/modes (see $b'%dhelp console'$b).
 
   In the final section (users that aren't on the current channel), masters
   will see the actual channels other users are on. Also, people in the
   filesystem will be listed (as being in channel "files") if the filesys
   module is loaded. A '+' next to the nickname here means the user has
   access to return to the party line.%{-}
 
See also: whom
::whoami
###  $bwhoami$b
   Shows your current handle and to what bot you are connected.
 
See also: whom
::whois:
###  $bwhois$b [nickname]
   Shows you stored information about a user record. 
   If no nickname is specified, your own record is shown. Five headings are
   displayed:
      $bHANDLE$b  - the handle (nickname) of the user
      $bBOTNICK$b - This user record is a bot.
      $bPASS$b    - "yes" if she has a password set; "no" otherwise 
                    (bots dont use passwords)
      $bFLAGS$b   - the list of flags for this user (see below)
      $bLAST$b    - the time or date that the user was last on irc or the partyline
 
   Valid flags:
      $bd$b = deop (user cannot gain ops in any channel)
      $bk$b = autokick (user is kicked and banned automatically)
      $bo$b = op (user has op access to all of the bot's channels)
      $bq$b = quiet (user cannot gain voice on any channel)
      $bv$b = voice (user gets +v automatically from +y bots)
 
   Valid user-only flags:
      $ba$b - admin (user has absolute control over botnet minus a few perm-owner only cmds)
              Be careful who you give this to, only the perm-owner of the net should even have it.
      $bi$b - hub access (user has hub DCC access)
      $bj$b - leaf access (user has leaf DCC access)
      $bm$b = master (user has more access to the botnet cmds than a normal user)
      $bn$b = owner (user has just about full access to bot)
      $bO$b = autoop (user is auto-opped in all channels)
      $bp$b - partyline-chat (user can speak on partyline. [$brequires +j or +i$b])
      $bx$b = flood-exempt (user is exempt from flood kicks)
 
   Valid bot-only flags:
      $bB$b = backup-bot (bot will only join chans marked +backup, see '%dhelp chaninfo')
      $bc$b - chat-bot (bot accepts DCC chat on irc)
      $bf$b = flood-bot (bot reacts to floods based on [cpu intensive] flood settings)
      $bl$b = limit-bot (bot sets limit in all channels, see '%dhelp chaninfo') [$bCPU INTENSIVE$b]
      $br$b = resolve (bot resolves clients in to match against userlist) [$bCPU INTENSIVE+$b]
      $bu$b - update-bot (see doc/UPGRADING)
      $by$b = voice-bot (bot gives out voices/auto-ops in chans) [$bCPU INTENSIVE$b]
 
   $bFlags followed by a '=' may also be used for a specific channel record.$b
 
   Hostmasks for the user are displayed on the following lines. If the user is
   a bot, there will be a line below which says "ADDRESS:" and gives the bot's
   telnet address. Some user entries may have "EMAIL:" and "INFO:" entries too.
   There may be additional information displayed depending on the modules
   loaded, such as filesys and console.
 
%{+m}
 
   Masters: if the user has a comment, you will see it under "COMMENT:".%{-}
 
See also: match, who, whom%{+m|m}, chattr, chaninfo%{-}
::whom
###  $bwhom$b [channel|*]
   Displays a list of users on the botnet.
   '*' is assumed if no parameters are given.
 
   For example:
      [23:12] #bryan# whom
       Nick        Bot        Host
      ----------   ---------  --------------------
      *bryan         Anakha     telnet@xxx.atlaga.adelphia.net [idle 8m]
      *BitchSmack  Anakha     telnet@xxx.atlaga.adelphia.net
      Total users: 2
 
   Each user's nickname will be listed in the first column, preceded by a "*"
   if they are a bot owner, "+" if they are a master, "%%" if they are a botnet
   master, or "@" if they are an op. In the next column, the bot the user is
   connected to will be displayed. In the third column, the host is shown. If
   the user is away, the away message will be shown. Likewise, if they are
   idle, their idle time will be displayed.
 
   To see what users are on a different channel, you may specify a channel
   number/name. If you specify "*" as the channel, all users on all botnet
   channels will be shown.
 
See also: who, chat%{+m}, bots%{-}
::end
