# Eggdrop 1.6.11 Core Bot Software

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

## Description
Eggdrop is a powerful IRC bot designed to automate tasks on IRC networks, including channel management, user interaction, and network operations.

## Key Features
- **Channel Management**: Joins channels, manages modes, and handles bans.
- **User Interaction**: Responds to commands from users, provides help, and automates responses.
- **Network Operations**: Manages connections with other bots in a botnet for redundancy and load balancing.
- **Flood Protection**: Implements flood protection mechanisms to prevent abuse.

## File Analysis
- **acconfig.h** — template file used for building configuration headers.
- **mod.irc** — documentation on the IRC module, which controls interactions with IRC servers.
- **action.fix.tcl** — handles actions sent via DCC (Direct Client Connection).
- **alltools.tcl** — includes various utility functions and scripts.
- **cmd_resolve.tcl** — adds a command to resolve hostnames or IP addresses without blocking the bot.
- **compat.tcl** — compatibility script for mapping old Tcl functions to new ones.
- **getops.tcl** — handles requesting and giving ops (channel permissions) among bots in a network.
- **klined.tcl** — automatically removes k-lined servers from the bot's server list.
- **notes2.tcl** — manages notes or messages associated with users.
- **ques5.tcl** — generates web pages based on user information.
- **sentinel.tcl** — flood protection system for Eggdrop bots.
- **userinfo.tcl** — provides user information and URL handling.
- **bg.c** — handles background process management while keeping threads happy.
- **botcmd.c** — handles commands from the botnet and userfile transfer updates.
- **botmsg.c** — formats messages to be sent on the botnet and sends different messages to different versioned bots.
- **botnet.c** — manages connections with other bots in a network, channel name associations, and pinging.
- **chan.h** — common header for channel management functions.
- **chanprog.c** — handles various programming tasks including server list maintenance and timers.
- **cmds.c** — handles commands from users via DCC (Direct Client Connection).
- **cmdt.h** — contains prototypes for command handling functions.
- **dcc.c** — manages activity on DCC sockets, disconnects, and other related operations.
- **dccutil.c** — provides utilities for sending formatted text over various types of connections.
- **dns.c** — handles DNS resolution calls and events.
- **eggdrop.h** — compile-time settings for Eggdrop.
- **flags.c** — contains flag matching and conversion functions.
- **flags.h** — header file for flags handling.
- **language.c** — supports language translation within the bot.
- **main.c** — core event handling, signal handling, command line arguments, and context debugging.
- **match.c** — handles wildcard matching functions.
- **mem.c** — manages memory allocation and deallocation.
- **misc.c** — includes various utility functions such as logging and help system management.
- **misc_file.c** — provides file copying and moving functionality.
- **modules.c** — supports loading and managing modules within Eggdrop.
- **net.c** — handles all raw network I/O operations.
- **patch.h** — header for adding patches to the version string.
- **proto.h** — prototypes for functions used outside their own module.
- **rfc1459.c** — implements RFC 1459 compliant IRC protocol handling.
- **stat.h** — file attribute management.
- **tandem.h** — header for tandem operations.
- **tcl.c** — handles Tcl commands and initialization.
- **tcldcc.c** — provides Tcl stubs for DCC commands.
- **tclegg.h** — used by tcl.c and tclhash.c.
- **tclhash.c** — manages bindings and triggers in the bot.
- **tclmisc.c** — handles miscellaneous Tcl commands.
- **tcluser.c** — manages user-record-oriented Tcl commands.
- **userent.c** — handles user entry handling, new style with more versatility.
- **userrec.c** — includes functions to find and change user records.
- **users.c** — manages testing, enforcing ignores, adding/removing ignores, listing ignores, auto-linking bots, sending/receiving userfiles, and listing users.
- **users.h** — structures and definitions used by users.c and userrec.c.
- **compat.h** — wrap-around header for compatibility functions.
- **gnu_strftime.c** — provides strftime functionality if necessary.
- **inet_aton.c** — provides inet_aton() if necessary.