# Eggdrop 1.0k Bot

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer (Unknown)

## Description
Eggdrop is a robust IRC bot designed to protect channels, manage users, and automate various tasks such as bans, ops, and flood protection.

## Key Features
- **Channel Protection**: Manages channel bans and ignores.
- **User Management**: Stores user records with passwords and access flags.
- **Auto-ops**: Automatically grants ops based on user actions or conditions.
- **Flood Control**: Prevents excessive flooding by users.
- **DCC File Transfer**: Handles file transfers via DCC.
- **Tcl Scripting**: Extensive support for Tcl scripting to extend functionality.

## File Analysis
- **bf_tab.h** — Blowfish P-box and S-box tables used for encryption.
- **blowfish.c** — Implements the Blowfish encryption algorithm.
- **botcmd.c** — Handles commands from users via DCC.
- **botnet.c** — Manages the botnet structure, tracking connected bots.
- **chan.c** — Manages channel operations and user bans.
- **chan.h** — Defines structures for channels and bans.
- **chanprog.c** — Manages channel programs and timers.
- **chanset.c** — Handles low-level channel and chanset manipulation.
- **cmds.c** — Processes commands from users via DCC.
- **cmdt.h** — Contains command definitions for Tcl scripting.
- **dcc.c** — Manages DCC connections and file transfers.
- **dccutil.c** — Provides utilities for DCC operations.
- **eggdrop.h** — Compile-time settings and configuration options.
- **english.h** — Defines various strings used in the bot.
- **filedb.c** — Handles filesystem database manipulation.
- **fileq.c** — Manages file queueing and sending.
- **files.c** — Implements file system commands.
- **files.h** — Structures for file database management.
- **gotdcc.c** — Processes incoming DCC requests.
- **hash.c** — Hash table lookups for command handling.
- **main.c** — Main bot logic, including flood detection and signal handling.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and tracking.
- **misc.c** — Various utility functions.
- **mode.c** — Manages channel modes and reactions to mode changes.
- **msgcmds.c** — Handles commands entered via /MSG.
- **msgnotice.c** — Processes messages and notices from users or channels.
- **net.c** — Raw network I/O handling.
- **notes.c** — Manages note sending and receiving.
- **proto.h** — Prototypes for functions used outside their modules.
- **tandem.h** — Structures for managing tandem bots in the chain.
- **tclegg.h** — Contains command types for Tcl scripting.
- **tclchan.c** — Tcl stubs for channel-oriented commands.
- **tcldcc.c** — Tcl stubs for DCC commands.
- **tclmisc.c** — Tcl stubs for file system and other commands.
- **tcluser.c** — Tcl stubs for user record commands.
- **userrec.c** — Functions to find and change user records.
- **users.c** — Manages bans, ignores, and user linking.
- **users.h** — Structures and definitions used by users.c and userrec.c.
- **dcc.save** — Script to save the entire user list for backup purposes.
- **compat.tcl** — Compatibility scripts for old '+friend' commands.
- **console.tcl** — Saves and restores a user's console mode.
- **gainops1.tcl** — Sends and handles requests for ops between tandem bots.
- **local.tcl** — Localizes text from party-line users to local users only.
- **ntalk.irc** — Script to talk to an eggdrop bot in DCC chat.
- **ques3.tcl** — Creates HTML files showing channel information periodically.
- **samples.tcl** — Examples of extending Eggdrop with Tcl scripts.
- **toolbox.tcl** — Useful procedures for use in Tcl scripts.
- **toolkit.tcl** — Additional Tcl procedures for script packages.
- **wire.tcl** — Secure communications on a botnet.
- **README** — Instructions and overview of the software.
- **CONTENTS** — Table of contents for documentation.
- **FEATURES** — List of features provided by Eggdrop.
- **Makefile** — Build instructions.
- **Makefile.in** — Configuration file for build process.
- **UPDATES** — List of changes in recent versions.