# Eggdrop 1.3.18 Bot

**Category:** Eggdrop_Bot
**Original Author:** Robey Pointer (Unknown for many)

## Description
Eggdrop 1.3.18 is a standalone IRC bot designed to automate tasks and manage channels on IRC networks. It includes features such as user management, channel moderation, and file serving capabilities.

## Key Features
- **User Management**: Supports adding, removing, and managing users with various flags.
- **Channel Moderation**: Handles joining, parting, kicking, and oping of users in channels.
- **File Serving**: Provides functionality to serve files via DCC (Direct Client Connection).
- **Automated Actions**: Triggers actions based on user input or events.
- **TCL Scripting**: Uses TCL for scripting commands and automations.

## File Analysis
- **action.fix.tcl** — Handles formatting of action messages.
- **alltools.tcl** — Includes various tools like `putmsg`, `putnotc`, `putchan`, and `putact`.
- **compat.tcl** — Maps old TCL functions to new ones for backward compatibility.
- **getops-2.0.1.tcl** — Script for gaining operational rights in channels.
- **klined.tcl** — Manages klines by automatically removing bots from servers they are k-lined on.
- **notes2.tcl** — Allows users to save and view notes across shared bots.
- **ques4.tcl** — Creates HTML files showing user information at regular intervals.
- **userinfo1.0.tcl** — Manages user information fields.
- **botcmd.c** — Handles commands from the botnet userfile transfer.
- **botmsg.c** — Formats messages for different versions of bots.
- **botnet.c** — Manages the botnet and channel name associations.
- **chan.h** — Defines structures used in channel management.
- **chanprog.c** — Manages server lists, timers, and tcl scripts.
- **cmds.c** — Handles non-IRC commands via DCC.
- **cmdt.h** — Contains command definitions for built-in commands.
- **dcc.c** — Manages activity on DCC sockets.
- **dccutil.c** — Provides utility functions for DCC connections.
- **eggdrop.h** — Compilation settings and defines.
- **flags.c** — Handles flag matching and conversion.
- **flags.h** — Defines flags and their usage.
- **lang.h** — Language support definitions.
- **language.c** — Implements language support.
- **main.c** — Manages nickname changes, flood detection, and command line arguments.
- **match.c** — Wildcard matching functions.
- **mem.c** — Memory allocation and deallocation.
- **misc.c** — Handles logging, queueing output, and help system.
- **modules.c** — Supports code modules in Eggdrop.
- **net.c** — Manages all raw network I/O.
- **patch.h** — Placeholder for patches.
- **proto.h** — Function prototypes used outside their own module.
- **tandem.h** — Handles tandem-bot tracking and party-line members.
- **tcl.c** — Handles TCL commands and Tcl initialization.
- **tcldcc.c** — TCL stubs for DCC commands.
- **tclegg.h** — Stuff used by tcl.c & tclhash.c.
- **tclhash.c** — Manages bindings and procedures for msg/dcc/file commands.
- **tclmisc.c** — Handles file system and other Tcl commands.
- **tcluser.c** — TCL stubs for user-record-oriented commands.
- **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, auto-links bots, sends/receives userfiles, lists users, reads the user file.
- **users.h** — Structures and definitions used by users.c & userrec.c.
- **assoc.c** — Manages channel associations.
- **blowfish.c** — Handles encryption and decryption of passwords using Blowfish algorithm.
- **blowfish.h** — Defines for the Blowfish P-box and S-box tables.
- **channels.c** — Part of channels.mod, supports channels within the bot.
- **channels.h** — Definitions for channels support in Eggdrop.
- **console.c** — Saves console settings based on `console.tcl`.
- **ctcp.c** — Handles CTCP commands except DCC.
- **ctcp.h** — Defines for CTCP handling.