# Eggdrop 1.3.14 Bot

**Category:** Eggdrop_Bot
**Original Author:** Unknown

## Description
This is a version of the Eggdrop IRC bot software configured for use in the late 1990s and early 2000s, specifically version 1.3.14. It includes numerous features such as channel management, user interaction, and network operations.

## Key Features
- **Channel Management**: Supports joining channels, kicking users, and setting channel modes.
- **User Interaction**: Handles commands from users via DCC (Direct Client Connection).
- **Network Operations**: Manages connections to IRC servers, handles k-lines, and supports dynamic channel operations.
- **Scripting**: Uses Tcl for scripting with various built-in functions and commands.

## File Analysis
- **action.fix.tcl** — Implements actions in IRC messages.
- **alltools.tcl** — Includes a collection of tools for managing the bot's functionality.
- **compat.tcl** — Provides compatibility mappings for older scripts.
- **getops-2.0.1.tcl** — Manages gaining operator status on channels.
- **klined.tcl** — Automatically removes k-lined servers from the bot’s list.
- **ques4.tcl** — Creates HTML files to display channel information periodically.
- **userinfo1.0.tcl** — Enhances `whois` output with user-defined fields.
- **botcmd.c** — Handles commands that come across the botnet and update commands from sharebots.
- **botmsg.c** — Formats messages sent on the botnet.
- **botnet.c** — Manages the bot's connection to other bots in a chain.
- **chan.h** — Defines structures for channel management.
- **chanprog.c** — Handles various aspects of channel programming and settings.
- **cmds.c** — Implements commands from users via DCC.
- **cmdt.h** — Contains definitions for built-in commands.
- **dcc.c** — Manages activity on DCC sockets.
- **dccutil.c** — Provides utilities for DCC connections.
- **eggdrop.h** — Contains compile-time settings and defines.
- **flags.c** — Implements flag matching and conversion functions.
- **flags.h** — Defines flags used in the bot.
- **lang.h** — Handles language support.
- **language.c** — Manages language files for the bot.
- **main.c** — Handles various aspects of the main program, including command line arguments and signal handling.
- **match.c** — Implements wildcard matching functions.
- **mem.c** — Manages memory allocation and deallocation.
- **misc.c** — Handles miscellaneous operations like logging and queueing output.
- **modules.c** — Supports code modules in Eggdrop.
- **net.c** — Manages all raw network I/O.
- **patch.h** — Placeholder for patches to be applied.
- **proto.h** — Contains function prototypes used outside their own module.
- **tandem.h** — Handles tandem-bot connections and party-line members.
- **tcl.c** — Handles Tcl commands added to Eggdrop.
- **tcldcc.c** — Manages DCC-related Tcl commands.
- **tclegg.h** — Defines types for Tcl command handling.
- **tclhash.c** — Implements binding and unbinding of Tcl commands.
- **tclmisc.c** — Handles file system commands in Tcl.
- **tcluser.c** — Manages user-record-oriented Tcl commands.
- **userent.c** — Handles user entry management.
- **userrec.c** — Implements functions to find and change user records.
- **users.c** — Manages users, ignores, and auto-linking bots.
- **users.h** — Defines structures for user and channel management.
- **module.h** — Contains all the include files required for module work.
- **ctcp.c** — Handles CTCP commands.
- **ctcp.h** — Defines CTCP command types.
- **assoc.c** — Manages channel associations.
- **bf_tab.h** — Blowfish P-box and S-box tables.
- **blowfish.c** — Implements encryption and decryption of passwords using the Blowfish algorithm.
- **channels.c** — Supports channels within the bot.
- **channels.h** — Defines functions for channel management.
- **cmdschan.c** — Handles commands from users via DCC that cause server interaction.
- **tclchan.c** — Manages Tcl commands related to channels.
- **userchan.c** — Implements functions to manage user records in channels.
- **console.c** — Saves and manages console settings based on `console.tcl`.
- **filedb.c** — Handles low-level manipulation of filesystem database files.
- **files.c** — Manages file system commands.