# Eggdrop 1.4.0 Botnet Client

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer (and various contributors)

## Description
Eggdrop 1.4.0 is a versatile IRC bot designed to manage and automate channel operations, including user management, flood protection, and network communication with other bots in the same botnet.

## Key Features
- **User Management**: Implements user flags and ignores.
- **Channel Operations**: Handles JOIN, PART, KICK, and MODE changes.
- **Flood Protection**: Detects and mitigates channel floods.
- **Botnet Communication**: Supports linking to other bots for shared information.
- **Scripting**: Extensive Tcl scripting capabilities with event bindings.

## File Analysis
- **acconfig.h** — Configuration settings for the bot.
- **action.fix.tcl** — Fixes for handling IRC actions in DCC and telnet sessions.
- **alltools.tcl** — Collection of tools and commands used by the bot.
- **compat.tcl** — Compatibility layer for older scripts.
- **getops-2.2d.tcl** — Script for requesting and giving ops to other bots.
- **klined.tcl** — Handles k-lines from IRC servers, removing affected servers automatically.
- **notes2.tcl** — Manages notes for users.
- **ques5.tcl** — Web file generation script.
- **sentinel1.54.tcl** — Flood protection system with CTCP simulation.
- **userinfo1.0.tcl** — User information retrieval and display.
- **botcmd.c** — Handles commands from the botnet userfile transfer.
- **botmsg.c** — Formats messages for different versions of bots.
- **botnet.c** — Manages connections to other bots in the chain.
- **chan.h** — Defines structures used by channel management functions.
- **chanprog.c** — Manages server lists and channel name associations.
- **cmds.c** — Handles commands from users via DCC.
- **cmdt.h** — Command definitions and function pointers.
- **dcc.c** — Handles DCC socket activity.
- **dccutil.c** — Utility functions for DCC connections.
- **eggdrop.h** — Compile-time settings for the bot.
- **flags.c** — Functions to match and convert flags.
- **flags.h** — Definitions for user, bot, and channel flags.
- **language.c** — Language support code.
- **main.c** — Handles nickname changes, flood detection, command line arguments.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and deallocation.
- **misc.c** — Logging, help system, MOTD display.
- **modules.c** — Support for code modules in the bot.
- **net.c** — Handles raw network I/O.
- **patch.h** — Placeholder for patches.
- **proto.h** — Function prototypes used outside their own module.
- **rfc1459.c** — IRC protocol handling.
- **tandem.h** — Tandem-bots in the chain management.
- **tcl.c** — Tcl stubs and initialization.
- **tcldcc.c** — Tcl stubs for DCC commands.
- **tclegg.h** — Stuff used by tcl.c & tclhash.c.
- **tclhash.c** — Handles Tcl bindings and procedure lookups.
- **tclmisc.c** — Tcl stubs for file system and other commands.
- **tcluser.c** — Tcl stubs for user-record-oriented commands.
- **userent.c** — User entry handling functions.
- **userrec.c** — Functions to find and change user records.
- **users.c** — Handles ignores, auto-linking bots, sending/receiving userfiles.
- **users.h** — Structures and definitions used by users.c & userrec.c.
- **global.h** — RSAREF types and constants.
- **md5.h** — MD5 message-digest algorithm header file.
- **md5c.c** — MD5 message-digest algorithm implementation.
- **module.h** — Module-related structures and functions.
- **modvals.h** — Hook values for modules.
- **assoc.c** — Channel association module.
- **blowfish.c** — Password encryption/decryption using Blowfish.
- **blowfish.h** — Blowfish P-box and S-box tables.
- **channels.c** — Channels management within the bot.
- **channels.h** — Header for channels management.