# Eggdrop 1.3.10 Bot

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

## Description
Eggdrop 1.3.10 is a standalone IRC bot that provides automated channel management, user interaction, and network communication capabilities.

## Key Features
- **Commands and Automations:**
  - Auto-op handling with `autoop` functionality.
  - Flood protection mechanisms.
  - K-line handling for server disconnection on k-lines.
  - User information retrieval via `.whois`.
  - Channel management including bans, modes, and ops.
  - File serving and XDCC services.

- **Security Features:**
  - Botnet support with `tandem` functionality.
  - TCL scripting for custom commands and events.
  - Authentication mechanisms for user levels.

## File Analysis
- **action.fix.tcl** — Handles `/me` actions in IRC messages.
- **alltools.tcl** — Includes various tools like `putmsg`, `putnotc`, and `putchan`.
- **compat.tcl** — Maps old TCL functions to new ones for backward compatibility.
- **getops-2.0.1.tcl** — Bot op management script with improved security.
- **klined.tcl** — Handles k-line detection and removal from server lists.
- **ques4.tcl** — Creates HTML tables of channel users periodically.
- **userinfo1.0.tcl** — Enhances `whois` output by storing user information.
- **botcmd.c** — Handles commands via the botnet userfile transfer system.
- **botmsg.c** — Formats messages for different versions of bots.
- **botnet.c** — Manages botnet connections and channel name associations.
- **chan.h** — Defines structures for channels and users within them.
- **chanprog.c** — Handles server list maintenance, revenge punishment, and timers.
- **cmds.c** — Manages commands from a user via DCC.
- **cmdt.h** — Contains command definitions and function pointers.
- **dcc.c** — Handles DCC socket activity and disconnects.
- **dccutil.c** — Provides utility functions for DCC connections.
- **eggdrop.h** — Compile-time settings for the bot.
- **flags.c** — Manages user flags and their matching/conversion.
- **flags.h** — Defines flag records and constants.
- **lang.h** — Language support definitions.
- **language.c** — Provides language support code.
- **main.c** — Handles nickname changes, flood detection, signal handling, and command line arguments.
- **match.c** — Implements wildcard matching functions.
- **mem.c** — Manages memory allocation and deallocation.
- **misc.c** — Handles various miscellaneous functions like split(), maskhost(), and logging.
- **modules.c** — Supports code modules in the bot.
- **net.c** — Manages all raw network I/O operations.
- **patch.h** — Placeholder for patches.
- **proto.h** — Contains function prototypes used outside their own module.
- **tandem.h** — Keeps track of tandem bots and party-line members.
- **tcl.c** — Handles TCL commands added to the bot.
- **tcldcc.c** — Implements Tcl stubs for DCC commands.
- **tclegg.h** — Contains types used by tcl.c and tclhash.c.
- **tclhash.c** — Manages bindings and procedures for TCL commands.
- **tclmisc.c** — Handles file system commands in TCL.
- **tcluser.c** — Implements user-record-oriented commands in TCL.
- **userent.c** — Handles user entry handling, new style with more versatility.
- **userrec.c** — Manages user records and flags.
- **users.c** — Tests and enforces ignores, adds/removes ignores, lists ignores, and handles user files.
- **users.h** — Structures and definitions used by users.c & userrec.c.
- **assoc.c** — Handles channel associations for the botnet.
- **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, including bans and modes.
- **channels.h** — Contains functions for channel management.
- **console.c** — Handles console settings based on `console.tcl`.
- **filedb.c** — Manages low-level filesystem database files.
- **files.c** — Implements file system commands.