# Eggdrop 1.6.0 Core Bot Software

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer (Eggheads)

## Description
This is a core version of the Eggdrop IRC bot software, designed to run unattended and manage channels by automating various tasks such as user management, channel protection, and flood control.

## Key Features
- **User Management**: Supports adding and removing users, setting permissions, and managing ignores.
- **Channel Protection**: Implements flood protection mechanisms using `sentinel.tcl`.
- **IRC Module Support**: Loads and manages IRC modules for extended functionality.
- **Botnet Networking**: Facilitates botnet communication and coordination through shared channels.

## File Analysis
- **acconfig.h** — Template file used to build configuration headers.
- **botcmd.c** — Handles commands from the botnet, userfile transfer, and update commands.
- **botmsg.c** — Manages message formatting for the botnet and sends different messages based on versioned bots.
- **chanprog.c** — Manages channel programming settings, timers, and utimers.
- **cmd_resolve.tcl** — Adds a command to resolve hostnames or IP addresses without blocking.
- **compat.h** — Compatibility header file for various functions.
- **compat.tcl** — Maps old Tcl functions to new ones for backward compatibility.
- **dns.c** — Handles DNS resolution and provides code used by the bot if the DNS module is not loaded.
- **eggdrop.h** — Contains compile-time settings for Eggdrop.
- **getops.tcl** — Script for requesting and giving ops to other bots in a botnet.
- **klined.tcl** — Automatically removes k-lined servers from the bot's server list.
- **match.c** — Handles wildcard matching functions.
- **misc.c** — Manages logging, queueing output, help system, and motd display.
- **modules.c** — Supports loading and managing modules in Eggdrop.
- **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 added to the bot, Tcl initialization, and variable management.
- **tclegg.h** — Used by tcl.c and tclhash.c for various bindings and procedures.