-- Eggdrop Extensions README file -- for version 1.52 --

Contents:

[1] What is Eggdrop Extensions?
   [1.1] IMPORTANT NOTICE
[2] Features
[3] Installing
[4] History
[5] Where to go for help

-------------------------------------------------------

[1] What is Eggdrop Extensions?

If you are new to Eggdrop Extensions, welcome!  Eggdrop Extensions is
an Eggdrop script designed to work on Eggdrop 1.3.x and higher.  It
will not run on earlier versions of Eggdrop.

Eggdrop Extensions provides an extensive feature set, which extend your
Eggdrop bot.  A full feature list is shown below.

If you have any questions, please feel free to e-mail the author at
vulture@abac.com.  You may or may not get a quick response.  If you
cannot reach vulture@abac.com, please try to e-mail
vulture_39@hotmail.com.

[1.1] IMPORTANT NOTICE

Please read the BUGS file for various problems you might encounter, that
might be confusing or concerning.

Please do NOT delete the directories vqotd_libs or vinfo created by this
installation, and unless you wish to delete the vQOTD or vInfo scripts, do
not delete scripts/vqotd.tcl or scripts/vinfo.tcl. Thank you.

Don't worry that vinfo.tcl didn't ship with this version, it isn't quite
complete. For those of you interested, this is because it depends on a C
program to list all the info keys. This will be replaced with a database of
info keys.

[2] Features

Eggdrop Extensions provides many features for Eggdrop bot administration
and users alike.

- Eggdrop Extensions reassigns the .whois command to allow any user with
  partyline (+p) access to use it, if this is not already the case in
  your version of Eggdrop.

- The .+chan and .-chan commands are now available to masters (+m) as
  well as owners (+n).

- The identification system:

  - .id in the channel or DCC, or id in /msg, will allow you to match
    a nickname to its handle in the bot's userfile.

  - .rid does the reverse of .id -- it matches the userfile handle to
    a nickname on a channel.

- A backwards-compatibility feature for other scripts allows older
  scripts to use the set-user and get-user commands, which were
  obsoleted and removed in Eggdrop 1.3 by the userset and userget
  commands.

- An automatic ban system, which bans users which are not friends (+f)
  on given channels, and a count is stored in the ak.killcount file.
  This kill score can be accessed with the .kills command in a channel
  or in DCC.

- A .kill DCC command to immediately terminate the connection of any
  user connected to your bot, including owners.  Accessible to owners
  only.

- A botnet WallOps system, to send a message to all users on the botnet
  with the +W flag and Eggdrop Extensions installed.  Any user with +W
  can also send these messages.  Use the .wallops command to use it.

- A similar .wall command, which allows anyone to see your message.
  Accessible to botnet masters (+t) or higher.

- A subnet system, with much-improved security in version 1.5, that
  allows you to perform mass joins or subnet rehashes.

- A DCC command, .extcheck, which queries the entire botnet for bots
  running Eggdrop Extensions.

- A DCC command, .pingbot, which would ping a bot to see if it was alive
  but did not measure lag time.  It is obsolete and has been removed since
  version 1.51.

- An administrative DCC command, .botnick, which allows bot masters to
  quickly and easily change the bot's nick.  This command can be used
  without any parameters to show the current nick and alternate, or
  with one or two parameters to set a new main and alternative nick.

- Administrative DCC commands, .join and .part, which command the bot to
  join the channel and lurk (try to make its presence as unnoticed as
  possible), or leave.  There is also a .cjoin command which switches
  the caller's console to that channel, and sets it to +p so that she
  can see messages in that channel.

- A DCC command, .restore, to restore your console to the settings that
  are saved in the userfile.

- An administrative and warfare command, .takeover, that quickly takes
  over a channel.  Don't count on it to do your dirty work, though --
  it is a bit sluggish.  The .untakeover command reverses a takeover
  and makes the bot leave. (except that this might leave the channel
  opless if you don't op someone else first!)

- A .whochan DCC command to list all users in a channel.  It is a very
  simple command.

- The bot will notify users who do are in the userfile, but who do not
  have a password set, when they join a channel the bot is in.

- A .auth channel command that shows all global and channel flags for
  a given user.

- A .seen channel command that shows last seen data for a given user,
  by HANDLE. (not by nickname!)

- A .ctime command, usable in either DCC or a channel, which converts
  a UNIX time_t value to human-readable date format. (note that this
  command DOES support negative values!)

- A .time command, usable in either DCC or a channel, which shows the
  local time for the bot.

- A .math command, usable in DCC, /MSG, or a channel, that evaluates a
  mathematical expression and gives an answer.

- A .qotd command, which shows a random quote from vqotd_libs/vqotd.vql,
  or, if specified, vqotd_libs/<file>.user.vql.

- An .addqotd command, which adds to the main QOTD library (or a library
  like kicks.vql)

- An .adduqotd command, which adds to *.user.vql QOTD libraries.

- A .delqotd command, which deletes a quote from a library. There is no
  .deluqotd command; you will have to delete from *.user.vql libraries by
  deleting from <library>.user instead of just <library>.

- A .qk command, which kicks a single user. If a second parameter is specified,
  vQOTD will read from that library for a kick message.

- A .rtopic command, which sets a random topic. If a second parameter is
  specified, vQOTD will read from that library for a kick message.

- An explainban command in /MSG, which will explain to a user why they are
  banned on one or more given channels. (or 0 for global bans)

- Warning users about not having passwords can be configured:

  - A configuration variable in eggdrop-ext.conf can turn it off entirely.
  - .nwp in DCC adds a channel to the list of channels not to warn on.
  - .rnwp in DCC removes a channel from that list.
  - .lnwp in DCC lists it.
  - .snwp in DCC saves it.

- Secure but convenient channel administration commands:

  - First, to use these, you must log in.  `/msg <bot> login <password>'
    to log in.  Once logged in, type these commands in the channel:

  - .adduser  : Adds a user to the bot's userfile, with default flags.
  - .deluser  : Deletes a user from the bot's userfile, unless they
                have added flags. (like +o)
  - .op       : Grants channel operator status to any number of users
                on the channel.
  - .deop     : Revokes channel operator status from any number of
                users on the channel.
  - .voice    : Grants a voice to any number of users on the channel.
  - .devoice  : Revokes a voice from any number of users on the channel.
  - .kick     : Ejects (kicks) any number of users from the channel.
                You cannot specify the reason, but you can specify any
                number of users.
  - .addop    : Grants permanent channel operator status to a user, by
                adding the op (+o) channel flag.
  - .remop    : Revokes permanent channel operator status from a user,
                by revoking the op (+o) channel flag.
  - .addvoice : Grants permanent voice status to a user, by adding the
                voice (+v) channel flag.
  - .remvoice : Revokes permanent voice status from a user, by revoking
                the voice (+v) channel flag.
  - .addmaster: Grants permanent channel master status to a user, by
                adding the master (+m) channel flag.  Please choose your
                masters carefully!
  - .remmaster: Revokes permanent channel master status from a user, by
                revoking the master (+m) channel flag.
  - .addowner : Grants permanent channel owner status to a user, by
                adding the owner (+n) channel flag.  THIS USER HAS
                ULTIMATE POWER on the channel, so long as your bot is
                opped.  Please take extreme caution using this command!
  - .remowner : Revokes permanent channel owner status from a user, by
                revoking the owner (+n) channel flag.
  - .bans     : Lists the bans on the channel.
  - .+ban     : Adds a ban to the channel ban list.
  - .-ban     : Removes a ban from the channel ban list.

[3] Installing

You can get this package at:

ftp://ftp.sodre.net/pub/eggdrop/scripts1.3/eggdrop-ext1.52.tar.gz

And will be propagated shortly to:

ftp://sunsite.unc.edu/pub/packages/irc/eggdrop/scripts1.3/eggdrop-ext1.52.tar.gz

To install the package, untar it (`tar -zxvf eggdrop-ext1.52.tar.gz' in your
eggdrop directory for modern UNIX machines, `gzip -cf eggdrop-ext1.52.tar.gz |
tar -xvf eggdrop-ext1.52.tar.gz' for older ones) in your eggdrop directory
(NOT the scripts directory - it will put eggdrop-ext.tcl in there on its own!).

Once you finish that, add the line `source scripts/eggdrop-ext.tcl' to your
eggdrop.conf file.  If you have any other eggdrop-ext*.tcl in there, remove
them, they will interfere with this new version!

After that, edit the new eggdrop-ext.conf file in your eggdrop directory to
configure Eggdrop Extensions.  After that, rehash your bot (if it's already
running) and enjoy!

Please address problems to vulture@abac.com.

[4] History

Eggdrop Extensions started out as my own private little script that I wrote
to help me with many common things I wanted to do with my bot. (and let others
do with it) It was initially a set of mods to the botcontrols-1.2.tcl script
(ftp://ftp.sodre.net/pub/eggdrop/scripts1.2/botcontrols-1.2.tcl.gz), whose
author I give many thanks for providing an excellent base script to make my
own.  Anyway, after hacking the heck out of bot controls, I decided to take
all my modified code (which was, by then, almost all of it) out of bot
controls and create my own script with it, which I named eggdrop-ext.tcl, or
Eggdrop Extensions.

This script included some fixes to version eggdrop 1.2.0+bel1, which was the
version of eggdrop I was writing it on.  It was slow, pathetic, and pretty
lame, but it worked.  A while later, I got my hands on version 1.3.5 when I
saw some other bot admins running it, and ported my script to it and started
developing it using the new features of 1.3.5.  Eventually that evolved into
what it is today, a script for 1.3.x bots.

[5] Where to go for help

You can find me on IRC at several places (or any of them):

Undernet, nick is Vulture_
The server insane.jon.com, nick is Vulture, channel is #insane

My ICQ number (UIN) is: 700937

My email address is: vulture@abac.com

Be glad to hear from you!

