# Eggdrop 1.3.5 Bot

**Category:** Eggdrop_Bot
**Original Author:** Unknown

## Description
Eggdrop 1.3.5 is a standalone IRC bot designed to automate various tasks on an IRC network, including managing channels, users, and handling flood protection.

## Key Features
- **Botnet Management**: Supports linking with other bots in the chain.
- **Channel Operations**: Handles channel joins, parts, kicks, and modes.
- **User Interaction**: Manages user flags and ignores.
- **Flood Protection**: Detects and mitigates flooding attempts.
- **DCC Handling**: Supports DCC file transfers.
- **Scripting**: Extensive scripting capabilities using Tcl.

## File Analysis
- **action.fix.tcl** — Handles formatting of /me actions in IRC messages.
- **alltools.tcl** — Collection of various tools for bot management, including authentication and channel operations.
- **getops-1.8.tcl** — A script to manage the bot's presence on channels by requesting ops or sending a message if no bots are available.
- **klined.tcl** — Automatically removes k-lined servers from the bot's server list.
- **ques4.tcl** — Generates an HTML file showing channel activity, including user information and idle times.
- **userinfo1.0.tcl** — Enhances `whois` output by allowing users to save additional information.
- **botcmd.c** — Handles commands that come from the botnet and updates sharebots.
- **botmsg.c** — Formats messages sent on the botnet, tailoring them based on the version of the bots they are sent to.
- **botnet.c** — Manages the botnet structure, including linking and relaying between bots.
- **chan.h** — Defines structures for channel members and flags.
- **chanprog.c** — Handles various channel-related operations such as maintaining server lists and revenge punishment.
- **cmds.c** — Processes commands from users via DCC connections.
- **cmdt.h** — Contains definitions for built-in commands.
- **dcc.c** — Manages DCC socket activity, including disconnects and formatted text sending.
- **dccutil.c** — Provides utilities for handling DCC connections, including timeout checking.
- **eggdrop.h** — Compile-time settings for the bot.
- **flags.c** — Handles flag matching and conversion functions.
- **flags.h** — Defines flags and their usage.
- **lang.h** — Language support definitions.
- **language.c** — Implements language support for the bot.
- **main.c** — Manages nick changes, flood detection, signal handling, and command line arguments.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and deallocation.
- **misc.c** — Handles various miscellaneous tasks such as string operations and logging.
- **modules.c** — Supports code modules in the bot.
- **modules.h** — Defines structures for module support.
- **net.c** — Manages all raw network I/O.
- **patch.h** — Placeholder for patches, allowing for modular updates.
- **proto.h** — Prototypes for functions used outside their own modules.
- **tandem.h** — Keeps track of tandem bots in the chain and party-line members.
- **tcl.c** — Handles Tcl commands added to the bot.
- **tcldcc.c** — Implements Tcl stubs for DCC commands.
- **tclegg.h** — Prototypes for Tcl command handling.
- **tclhash.c** — Manages bindings and procedures for msg/dcc/file commands.
- **tclmisc.c** — Handles file system and other Tcl commands.
- **tcluser.c** — Implements Tcl stubs for user-record-oriented commands.
- **userent.c** — Handles user entry handling, including new-style versatile methods.
- **userrec.c** — Manages user records, flags, and operations.
- **users.c** — Tests and enforces ignores, adds/removes ignores, lists ignores, and handles user files.
- **users.h** — Structures and definitions used by users.c and userrec.c.
- **assoc.c** — Manages channel associations for the botnet.
- **blowfish.c** — Handles encryption and decryption of passwords using Blowfish.
- **channels.c** — Supports channels within the bot, including modes and bans.
- **ctcp.c** — Handles CTCP commands.
- **filedb.c** — Low-level file system manipulation and reaction to remote requests for files.
- **files.c** — Implements file system commands.