# Eggdrop 1.6.5 Core Bot Software

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

## Description
Eggdrop is a versatile IRC bot designed to automate tasks, manage channels, and provide services on IRC networks. It supports various functionalities such as channel management, user tracking, and network-wide operations.

## Key Features
- **Channel Management**: Handles JOIN/LEAVE/KICK events.
- **User Tracking**: Tracks users' actions and manages their permissions.
- **Network Operations**: Supports botnet linking for distributed operations.
- **Flood Protection**: Implements flood protection mechanisms to prevent abuse.
- **File Services**: Provides file transfer services (fserve).
- **XDCC Services**: Manages XDCC distribution channels.

## File Analysis
- **acconfig.h** — Template configuration header used in building the bot.
- **botcmd.c** — Handles commands from the botnet and userfile transfers.
- **botmsg.c** — Formats messages for sending on the botnet.
- **chanprog.c** — Manages channel programming, revenge punishments, and timers.
- **cmd_resolve.tcl** — Adds a command to resolve hostnames or IP addresses without blocking.
- **compat.h** — Compatibility functions for backward compatibility.
- **compat.tcl** — Maps old Tcl functions to new ones.
- **dns.c** — Handles DNS resolution calls and events.
- **eggdrop.h** — Compile-time settings for the bot.
- **getops.tcl** — Bot-to-bot ops request handling script.
- **klined.tcl** — Automatically removes k-lined servers from the bot's server list.
- **main.c** — Core event handling, signal handling, and command line arguments.
- **misc.c** — Handles logging, queueing output, help system, and MOTD display.
- **modules.c** — Supports loading of modules in eggdrop.
- **proto.h** — Prototypes for functions used outside their own module.
- **rfc1459.c** — Implements RFC 1459 IRC protocol handling.
- **tcl.c** — Handles Tcl commands and variable manipulation.
- **users.c** — Manages user records, ignores, and userfile transfers.