# Eggdrop 1.6.15 Core Bot Software

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

## Description
Eggdrop is a versatile IRC bot designed for managing channels, automating tasks, and providing services on IRC networks. It supports various features such as channel management, user tracking, and network-wide operations.

## Key Features
- **Channel Management**: Joins, leaves, and manages multiple channels.
- **User Tracking**: Tracks users' actions and applies rules based on their behavior.
- **Network Operations**: Supports botnet functionality for distributed control.
- **Flood Protection**: Implements flood protection mechanisms to prevent abuse.
- **File Services**: Provides file transfer services using DCC (Direct Client Connection).
- **XDCC Service**: Manages XDCC service for distributing files.

## File Analysis
- **acconfig.h** — Template configuration file used during build process.
- **botcmd.c** — Handles commands from the botnet and userfile transfers.
- **botmsg.c** — Formats messages sent on the botnet and handles version-specific messaging.
- **botnet.c** — Manages connections, channel associations, and leaf status of other bots in the network.
- **chanprog.c** — Manages server lists, revenge punishments, timers, and tcl script initialization.
- **cmdt.h** — Contains prototypes for built-in commands.
- **compat.tcl** — Maps old Tcl functions to new ones for backward compatibility.
- **compat.h** — Header file for all compatibility functions.
- **dprintf.c** — Implements debug printing functionality.
- **dns.c** — Handles DNS resolution and provides Tcl commands for it.
- **eggdrop.h** — Compile-time settings for the bot.
- **flags.c** — Manages flag matching and conversion.
- **getops.tcl** — Script used to request and give ops to other bots in a network.
- **klined.tcl** — Automatically removes k-lined servers from the bot's server list.
- **match.c** — Implements wildcard matching functions.
- **misc.c** — Handles various utility functions, logging, and help system.
- **modules.c** — Supports loading of modules within Eggdrop.
- **net.c** — Manages all raw network I/O operations.
- **proto.h** — Prototypes for every function used outside its own module.
- **rfc1459.c** — Implements IRC protocol handling based on RFC 1459.
- **tcl.c** — Handles Tcl commands and initialization.
- **tclegg.h** — Header file for tcl-related functions.
- **userent.c** — Manages user entries in the bot's database.
- **users.c** — Handles user management, ignores, and userfile operations.