# Eggdrop 1.3.13 Bot Software

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer (Unknown for many contributors)

## Description
Eggdrop 1.3.13 is a botnet client designed to automate IRC interactions, manage channels, and provide services such as flood protection, user management, and file serving.

## Key Features
- **Botnet Management**: Manages connections to other bots in the network.
- **Channel Automation**: Handles channel joins, parts, modes, and kicks.
- **User Management**: Supports user flags and ignores.
- **File Serving**: Provides functionality for DCC (Direct Client-to-Client) file transfers.
- **Security Features**: Includes kline handling to automatically remove servers from the bot's list when k-lined.

## File Analysis
- **action.fix.tcl** — Handles actions in channels, converting certain input formats.
- **alltools.tcl** — Provides a collection of tools for managing users and channels.
- **compat.tcl** — Maps old Tcl functions to new ones for backward compatibility.
- **getops-2.0.1.tcl** — Manages channel operations with a focus on security by limiting ops requests.
- **klined.tcl** — Automatically removes servers from the bot's list when k-lined.
- **ques4.tcl** — Generates HTML files to display user information in channels.
- **userinfo1.0.tcl** — Enhances `whois` output with additional fields.
- **botcmd.c** — Handles commands that come across the botnet and update sharebots.
- **botmsg.c** — Formats messages sent on the botnet for different versions of bots.
- **botnet.c** — Manages connections to other bots in the network.
- **chan.h** — Defines structures common to channel management.
- **chanprog.c** — Handles various functions related to channels, including maintaining server lists and timers.
- **cmds.c** — Processes commands from users via DCC (Direct Client-to-Client) connections.
- **cmdt.h** — Contains definitions for built-in commands.
- **dcc.c** — Manages activity on DCC sockets.
- **dccutil.c** — Provides utilities for sending formatted text to various types of connections, including `.who`, `.whom`, and `.dccstat`.
- **eggdrop.h** — Defines compile-time settings for the bot.
- **flags.c** — Handles flag matching and conversion functions.
- **flags.h** — Defines flags used in the bot.
- **lang.h** — Contains language support definitions.
- **language.c** — Provides language support code.
- **main.c** — Manages nick changes, flood detection, signal handling, command line arguments, etc.
- **match.c** — Implements wildcard matching functions.
- **mem.c** — Handles memory allocation and deallocation.
- **misc.c** — Manages various miscellaneous tasks such as split(), maskhost(), copyfile(), movefile(), fixfrom().
- **modules.c** — Supports code modules in the bot.
- **net.c** — Handles all raw network I/O.
- **patch.h** — Placeholder for patches, allowing users to modify specific parts of the code.
- **proto.h** — Contains function prototypes used outside their own module.
- **tandem.h** — Manages tandem-bot connections in a chain.
- **tcl.c** — Handles Tcl commands and initialization.
- **tcldcc.c** — Provides Tcl stubs for DCC (Direct Client-to-Client) commands.
- **tclegg.h** — Contains definitions used by tcl.c and tclhash.c.
- **tclhash.c** — Manages bindings and procedures for msg/dcc/file commands.
- **tclmisc.c** — Handles Tcl stubs for file system commands and other miscellaneous tasks.
- **tcluser.c** — Provides Tcl stubs for user-record-oriented commands.
- **userent.c** — Handles user entry handling, new style with more versatility.
- **userrec.c** — Manages user records, including flags and changes.
- **users.c** — Tests and enforces ignores, adds/removes ignores, lists ignores, auto-links bots, sends/receives a userfile from another bot, lists users, reads the user file.
- **users.h** — Contains structures and definitions used by users.c and userrec.c.
- **module.h** — Just includes all include files for module work.
- **ctcp.c** — Handles CTCP (Client-to-Client Protocol) commands.
- **ctcp.h** — Defines CTCP commands.
- **assoc.c** — Manages channel associations.
- **bf_tab.h** — Blowfish P-box and S-box tables.
- **blowfish.c** — Implements encryption and decryption of passwords using the Blowfish algorithm.
- **blowfish.h** — Defines constants and unions for the Blowfish algorithm.