# Eggdrop 1.6.3 Bot

**Category:** Eggdrop_Bot
**Original Author:** Eggheads (Unknown)

## Description
Eggdrop 1.6.3 is a versatile IRC bot designed to automate tasks on IRC networks, including managing channels, handling user commands, and providing services such as flood protection.

## Key Features
- **Channel Management**: Handles channel joins, parts, kicks, and ops.
- **User Interaction**: Processes commands from users via DCC (Direct Client Connection).
- **Flood Protection**: Implements a robust system to prevent flooding attacks.
- **Botnet Support**: Supports a network of interconnected bots for shared resources.
- **Configuration Management**: Loads and manages various configuration files.

## File Analysis
- **acconfig.h** — Template file used by autoheader when building `config.h.in`.
- **botcmd.c** — Handles commands that come across the botnet, userfile transfer, and update commands from sharebots.
- **botmsg.c** — Manages formatting of messages to be sent on the botnet and sends different messages to different versioned bots.
- **botnet.c** — Tracks which bots are connected where in the chain, dumps a list of bots or a bot tree to a user, and handles channel name associations on the party line.
- **chanprog.c** — Manages server lists, revenge punishment, timers, utimers, and initializes Tcl scripts.
- **cmd_resolve.tcl** — Adds the command `.resolve` for looking up hostnames or IP addresses in the partyline without causing the bot to block.
- **compat.h** — Wrap-around header for all compatibility functions.
- **compat.tcl** — Provides quick mappings of old Tcl functions to new ones and binds some old commands to new ones.
- **dns.c** — Handles DNS resolve calls, provides code used by the bot if the DNS module is not loaded, and includes DNS Tcl commands.
- **eggdrop.h** — Compile-time settings for Eggdrop.
- **flags.c** — Contains flag matching/conversion functions.
- **main.c** — Handles core event handling, signal handling, command line arguments, context, and assert debugging.