# Eggdrop 1.0t Bot

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer

## Description
Eggdrop is a highly advanced IRC bot written in C, designed to protect channels by managing user access, handling channel operations, and providing file sharing services.

## Key Features
- **Channel Protection**: Manages bans and ignores for users.
- **User Management**: Tracks user records with passwords and hostmasks.
- **Access Control**: Implements a hierarchical user system with various flags.
- **Automated Actions**: Performs actions like kicking, banning, and oping users based on events.
- **File Services**: Supports file transfers via DCC.
- **Tcl Scripting**: Extensible through Tcl scripts for custom functionality.

## File Analysis
- **bf_tab.h** — Blowfish P-box and S-box tables used for encryption.
- **blowfish.c** — Handles password encryption using the Blowfish algorithm.
- **botcmd.c** — Manages commands received from users via DCC.
- **botnet.c** — Tracks connected bots in a chain, handles communication between them.
- **chan.c** — Manages channel operations and user permissions.
- **chan.h** — Defines structures for channel management.
- **chanprog.c** — Initializes channels and loads Tcl scripts.
- **chanset.c** — Handles low-level channel and chanset manipulation.
- **cmds.c** — Processes commands from users via DCC.
- **cmdt.h** — Contains command definitions and access levels.
- **dcc.c** — Manages DCC connections and file transfers.
- **dccutil.c** — Provides utilities for handling DCC connections.
- **eggdrop.h** — Compilation settings and configuration options.
- **english.h** — Defines strings used in the bot's output.
- **filedb.c** — Handles filesystem database operations.
- **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 and outgoing files.
- **hash.c** — Handles procedure lookups for msg/dcc/file commands.
- **main.c** — Main entry point, handles server connections and command processing.
- **match.c** — Implements wildcard matching functions.
- **mem.c** — Manages memory allocation and tracking.
- **misc.c** — Contains miscellaneous utility functions.
- **mode.c** — Handles channel mode changes and reactions.
- **msgcmds.c** — Processes commands entered via /MSG.
- **msgnotice.c** — Manages messages and notices from users or channels.
- **net.c** — Handles raw network I/O.
- **notes.c** — Manages notes and destinations for sending them.
- **proto.h** — Prototypes for functions used outside their modules.
- **tandem.h** — Tracks tandem bots in a chain.
- **tcl.c** — Implements Tcl commands added to the bot.
- **tclchan.c** — Handles channel-oriented Tcl commands.
- **tcldcc.c** — Handles DCC-related Tcl commands.
- **tclegg.h** — Defines command types for Tcl scripting.
- **tclhash.c** — Manages bindings and triggers for Tcl events.
- **tclmisc.c** — Implements miscellaneous Tcl commands.
- **tcluser.c** — Handles user-oriented Tcl commands.
- **userrec.c** — Manages user records and operations.
- **users.c** — Processes bans, ignores, and userfile management.
- **users.h** — Structures for user record management.
- **dcc.save** — Script to save the user list when exiting.
- **action.fix.tcl** — Implements .me command handling.
- **compat.tcl** — Provides compatibility with old versions of eggdrop.
- **console.tcl** — Manages console modes and saves/loads them.
- **dike.tcl** — Detects floodnets and manages flood protection.
- **gainops1.tcl** — Sends and handles ops requests between tandem bots.
- **local.tcl** — Localizes messages for party line users.
- **ntalk.irc** — Scripts to talk to other eggdrop bots in dcc chat.
- **ques3.tcl** — Creates HTML files showing channel status.
- **samples.tcl** — Examples of extending the bot with Tcl scripts.
- **toolbox.tcl** — Provides utility procedures for Tcl scripting.
- **toolkit.tcl** — Additional Tcl utilities for script packages.
- **wire.tcl** — Manages secure communications on a botnet.
- **README** — General information about eggdrop and how to use it.
- **COPYING** — License information.
- **FEATURES** — List of features provided by the bot.