# Eggdrop 1.6.2 Core Bot Software

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

## Description
Eggdrop is a versatile IRC bot designed to automate tasks, manage channels, and provide services on IRC networks. It supports various commands, user permissions, and extensive automation features.

## Key Features
- **User Management**: Supports user flags, ignores, and auto-linking.
- **Channel Management**: Handles channel modes, bans, and topic changes.
- **Flood Protection**: Implements mechanisms to prevent flood attacks.
- **DCC File Transfer**: Manages file transfers using DCC commands.
- **Botnet Support**: Enables botnet functionality for distributed control.

## File Analysis
- **acconfig.h** — Template configuration header used during build process.
- **mod.irc** — IRC module documentation, loads basic IRC support into the bot.
- **action.fix.tcl** — Fixes for handling /me actions in DCC and Telnet sessions.
- **alltools.tcl** — Collection of utility procedures and functions.
- **cmd_resolve.tcl** — Adds a command to resolve hostnames or IP addresses without blocking.
- **compat.tcl** — Compatibility layer for old Tcl functions.
- **getops.tcl** — Script for requesting and giving ops within the botnet.
- **klined.tcl** — Handles k-lines by removing servers from the bot's list when detected.
- **notes2.tcl** — User notes management script with indexing.
- **ques5.tcl** — Web file generation script, converts URLs and nicks to HTML.
- **sentinel.tcl** — Flood protection system for Eggdrop bots.
- **userinfo.tcl** — Provides user information commands.
- **bg.c** — Handles background process management.
- **botcmd.c** — Manages botnet command handling.
- **botmsg.c** — Formats and sends messages to different versions of bots.
- **botnet.c** — Tracks connected bots, channel associations, and pings.
- **chan.h** — Common header for channel-related functions.
- **chanprog.c** — Handles server list maintenance, revenge punishment, timers, and tcl script loading.
- **cmds.c** — Manages non-IRC commands via DCC sockets.
- **cmdt.h** — Prototypes for built-in commands.
- **dcc.c** — Manages activity on DCC connections.
- **dccutil.c** — Functions to send formatted text over various types of connections.
- **dns.c** — DNS resolution and related Tcl commands.
- **eggdrop.h** — Compile-time settings header.
- **flags.c** — Flag matching and conversion functions.
- **language.c** — Language support for the bot.
- **main.c** — Core event handling, signal management, and command-line arguments.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and deallocation.
- **misc.c** — Handles logging, queueing output, resync buffers, help system, and motd display.
- **modules.c** — Supports modules in Eggdrop.
- **net.c** — Raw network I/O handling.
- **patch.h** — Header for adding patches to the version string.
- **proto.h** — Prototypes for functions used outside their own module.
- **rfc1459.c** — RFC 1459 compliant IRC protocol implementation.
- **stat.h** — File attribute management.
- **tcl.c** — Handles Tcl commands and initialization.
- **tcldcc.c** — Tcl stubs for DCC commands.
- **tclegg.h** — Stuff used by tcl.c and tclhash.c.
- **tclhash.c** — Manages bindings, procedures lookups, and Tcl binding internal procedures.
- **tclmisc.c** — Tcl stubs for file system commands and other miscellaneous functions.
- **tcluser.c** — Tcl stubs for user-record-oriented commands.
- **userent.c** — User entry handling with new style.
- **userrec.c** — Functions to find and change user records, manage flags.
- **users.c** — Handles testing, enforcing ignores, adding/removing ignores, listing ignores, auto-linking bots, sending/receiving a userfile, and listing users.
- **users.h** — Structures and definitions used by users.c and userrec.c.