### Quick Start Eggdrop Installation and First Run Source: https://docs.eggheads.org/tutorials/setup This sequence of commands provides a rapid installation and initial setup guide for Eggdrop, covering download, extraction, compilation, installation, and the first execution of the bot. ```bash wget geteggdrop.com -O eggdrop-1.10.0.tar.gz tar zxvf eggdrop-1.10.0.tar.gz cd eggdrop-1.10.0 ./configure make config make make install cd ~/eggdrop ./eggdrop -m ``` -------------------------------- ### Install Eggdrop to Custom Directory Source: https://docs.eggheads.org/install/install Installs the compiled Eggdrop bot to a user-specified directory. A full path must be provided for the `DEST` variable. ```bash make install DEST= ``` -------------------------------- ### Install Eggdrop to Default Directory Source: https://docs.eggheads.org/install/install Installs the compiled Eggdrop bot to the default home directory location, typically `/home/user/eggdrop`. ```bash make install ``` -------------------------------- ### Cygwin Package Requirements for Eggdrop Compilation Source: https://docs.eggheads.org/install/install Lists the necessary Cygwin packages that must be installed prior to compiling Eggdrop on a Windows environment, categorized by their function. ```text Interpreters: tcl, tcl-devel Net: openssl-devel Devel: autoconf, gcc-core, git, make Utils: diffutils ``` -------------------------------- ### Generate Eggdrop SSL Certificates Source: https://docs.eggheads.org/install/install Generates SSL certificates for protecting botnet links. Includes options for default installation, custom installation paths, and non-interactive generation for scripting. ```bash make sslcert ``` ```bash make sslcert DEST= ``` ```bash make sslsilent ``` -------------------------------- ### Start Eggdrop Bot After Initial Setup Source: https://docs.eggheads.org/tutorials/setup After the initial setup, use this command to start the Eggdrop bot without creating a new userfile. This is for subsequent starts. Replace `` with the name of your configuration file. ```Shell ./eggdrop ``` -------------------------------- ### Start Eggdrop to Create User File Source: https://docs.eggheads.org/install/install Initial startup command for Eggdrop, using the `-m` option to create the bot's user file based on the specified configuration file (e.g., `LamestBot.conf`). ```bash ./eggdrop -m LamestBot.conf ``` -------------------------------- ### Make Eggdrop Configuration File Executable Source: https://docs.eggheads.org/install/install Changes file permissions to allow the Eggdrop configuration file to be executed directly as a shell script, simplifying future bot startups. For example, `chmod u+x LamestBot.conf`. ```bash chmod u+x ``` -------------------------------- ### Run Eggdrop with Command Line Options Source: https://docs.eggheads.org/install/readme This snippet shows the basic command-line syntax for starting the Eggdrop bot. It highlights that most configurations are handled via the config file, but provides options for specific operational modes like interactive terminal sessions, channel status monitoring, or initial userfile creation. ```Shell ./eggdrop [options] [config-file] ``` -------------------------------- ### Start Eggdrop Bot for First Time Source: https://docs.eggheads.org/tutorials/setup This command starts the Eggdrop bot for the very first time, creating a new userfile. Replace `` with the actual name of your configuration file. ```Shell ./eggdrop -m ``` -------------------------------- ### Install Compiled Eggdrop to Destination Source: https://docs.eggheads.org/tutorials/setup Installs the compiled Eggdrop binaries and files into a specified directory. The 'DEST' parameter allows choosing a custom installation path, either relative (using '~') or absolute. 'pwd' can be used to find the current full path. ```Shell make install DEST=~/botdir ``` ```Shell make install DEST=/home/cooldude/botdir ``` ```Shell pwd ``` -------------------------------- ### Eggdrop Startup Message for User Creation Source: https://docs.eggheads.org/tutorials/firststeps This message is displayed by Eggdrop when it starts in userfile creation mode, guiding the user on how to initiate contact and become the bot's master either via telnet or IRC. It provides instructions for both methods. ```Plain Text STARTING BOT IN USERFILE CREATION MODE. Telnet to the bot and enter 'NEW' as your nickname. OR go to IRC and type: /msg BotNick hello This will make the bot recognize you as the master. ``` -------------------------------- ### Install OpenSSL and Development Libraries on Debian Source: https://docs.eggheads.org/tutorials/setup This command installs the OpenSSL library and its development headers on Debian-based systems, enabling SSL/TLS support for Eggdrop. ```bash sudo apt-get install openssl libssl-dev ``` -------------------------------- ### Automate Eggdrop Restart using Systemd (Modern Method) Source: https://docs.eggheads.org/tutorials/firststeps This section outlines the contemporary method for automatically managing an Eggdrop bot's lifecycle using systemd. It covers installing the systemd service via 'autobotchk' and provides commands for starting, stopping, reloading (which executes the bot's rehash command), enabling, and disabling the bot service for system startup. ```Shell ./scripts/autobotchk yourEggdropConfigNameHere.conf -systemd ``` ```Shell systemctl --user start .service ``` ```Shell systemctl --user stop .service ``` ```Shell systemctl --user reload .service ``` ```Shell systemctl --user disable .service ``` ```Shell systemctl --user enable .service ``` -------------------------------- ### Generate Systemd Service for Eggdrop Autostart Source: https://docs.eggheads.org/install/readme This command utilizes the `autobotchk` script to create a systemd service unit. This service ensures that Eggdrop starts automatically on machine boot and is restarted if it crashes, providing robust uptime management for the bot. ```Shell ./scripts/autobotchk -systemd ``` -------------------------------- ### Install Tcl and Development Packages on Debian Source: https://docs.eggheads.org/tutorials/setup This command installs the Tcl interpreter and its development files on Debian-based systems, which are essential prerequisites for compiling Eggdrop. ```bash sudo apt-get install tcl tcl-dev ``` -------------------------------- ### Remove Eggdrop Source Directory After Installation Source: https://docs.eggheads.org/tutorials/setup Commands to navigate back to the home directory and then recursively remove the Eggdrop source directory (e.g., 'eggdrop-1.10.0') to free up disk space after successful installation. ```Shell cd ~ ``` ```Shell rm -rf eggdrop-1.10.0 ``` -------------------------------- ### Generate Self-Signed SSL Certificate for Eggdrop Source: https://docs.eggheads.org/tutorials/tlssetup This command is executed in the Eggdrop source directory to generate a self-signed public/private certificate pair. The wizard will guide you through the process, and by default, install the keys to ~/eggdrop. The installation path can be customized using 'DEST=/path/to/eggdrop/install'. ```Shell make sslcert ``` -------------------------------- ### Install OpenSSL and Development Headers on Debian/Ubuntu Source: https://docs.eggheads.org/tutorials/tlssetup This command installs the necessary OpenSSL library and its development headers on Debian or Ubuntu-based systems. These packages are essential prerequisites for compiling Eggdrop with TLS support. ```Bash apt-get install openssl libssl-dev ``` -------------------------------- ### Installing an Eggdrop Module Source: https://docs.eggheads.org/modules/index Provides step-by-step instructions for compiling and installing a new module for Eggdrop. This process involves downloading the source, placing the module file, running configuration and build commands, copying the compiled module, and updating the Eggdrop configuration file. ```Shell 1. Download and un-tar the Eggdrop source code. 2. Place the new module in its own directory (in the format of (modulename).mod) in src/mod. 3. Run ./configure (from eggdrop-1.10.0/). 4. Type ‘make config’ or ‘make iconfig’. 5. Type ‘make’. 6. Copy the compiled module file (modulename.so) into your bot’s modules folder. 7. Add ‘loadmodule modulename’ to your eggdrop.conf file (do not add the .so suffix). 8. Rehash or restart your bot. ``` -------------------------------- ### Configure Eggdrop Auto-Restart via Systemd Source: https://docs.eggheads.org/install/install Uses the `autobotchk` helper script to generate a systemd service entry, ensuring the Eggdrop bot automatically restarts upon system boot or crash. ```bash ./scripts/autobotchk [yourconfig.conf] -systemd ``` -------------------------------- ### Eggdrop Python Example Scripts Overview Source: https://docs.eggheads.org/using/python Provides a summary of various example Python scripts included with the Eggdrop Python module, demonstrating different aspects of scripting, such as Tcl list/dict parsing, basic bind usage, and integration with third-party modules. ```APIDOC Example Scripts: - bestfriend.py: Demonstrates parse_tcl_list() for converting Tcl lists. - greet.py: Basic script showing Python binds. - imdb.py: Shows using third-party modules (imdb.com). - listtls.py: Demonstrates parse_tcl_list() and parse_tcl_dict() for lists of dicts. - urltitle.py: Shows using third-party modules (http parser for web page titles). ``` -------------------------------- ### Recommended Shell Editors for Eggdrop Configuration Source: https://docs.eggheads.org/tutorials/setup Suggests common command-line text editors ('nano', 'vim') for modifying the 'eggdrop.conf' file directly on the shell environment after installation. ```Shell nano ``` ```Shell vim ``` -------------------------------- ### Eggdrop Account Tracking Status (Enabled Example) Source: https://docs.eggheads.org/using/accounts This is an example output from the `.status` command on the Eggdrop partyline, showing that account tracking is successfully enabled. The key indicator is 'Account tracking: Enabled', confirming that both the server supports and Eggdrop has requested the necessary capabilities. ```Console Output Loaded module information: #eggdroptest : (not on channel) Channels: #eggdroptest (trying) Account tracking: Enabled <--- This line Online as: BeerBot (BeerBot) ``` -------------------------------- ### Generate Crontab Entry for Eggdrop Autostart (Custom Options) Source: https://docs.eggheads.org/install/readme This example demonstrates how to use the `autobotchk` script with additional options when generating a crontab entry. The `-noemail` option prevents email notifications upon bot restarts, and `-5` sets the check interval to every 5 minutes, allowing for fine-grained control over the monitoring behavior. ```Shell ./scripts/autobotchk -noemail -5 ``` -------------------------------- ### Configure Eggdrop Auto-Restart via Crontab Source: https://docs.eggheads.org/install/install Uses the `autobotchk` helper script to generate a crontab entry, ensuring the Eggdrop bot automatically restarts upon system boot or crash. ```bash ./scripts/autobotchk [yourconfig.conf] ``` -------------------------------- ### Eggdrop Flag Mask Syntax and Examples Source: https://docs.eggheads.org/using/tcl-commands This section provides various examples of Eggdrop flag masks, illustrating how different combinations of global, channel, and bot flags, along with logical operators and prefixes, define specific user permission checks. It covers scenarios for checking presence, absence, and combinations of flags across different scopes. ```APIDOC Flag Mask: m, +m, m|* Action: Checks if the user has the m global flag ``` ```APIDOC Flag Mask: +mn Action: Checks if the user has the m OR n global flag ``` ```APIDOC Flag Mask: |+mn Action: Checks if the user has the m OR n channel flag ``` ```APIDOC Flag Mask: |+mn #foo Action: Checks if the user has the m OR n channel flag for #foo ``` ```APIDOC Flag Mask: &+mn Action: Checks if the user has the m AND n channel flag ``` ```APIDOC Flag Mask: &mn #foo Action: Checks if the user has the m AND n channel flag for #foo ``` ```APIDOC Flag Mask: |+o #foo Action: Checks if the user has the o channel flag for #foo ``` ```APIDOC Flag Mask: +o|+n #foo Action: Checks if the user has the o global flag OR the n channel flag for #foo ``` ```APIDOC Flag Mask: +m&+v #foo Action: Checks if the user has the m global flag AND the v channel flag for #foo ``` ```APIDOC Flag Mask: -m Action: Checks if the user does not have the m global flag ``` ```APIDOC Flag Mask: |-n #foo Action: Checks if the user does not have the n channel flag for #foo ``` ```APIDOC Flag Mask: +m|-n #foo Action: Checks if the user has the global m flag OR does not have a channel n flag for #foo ``` ```APIDOC Flag Mask: -n&-m #foo Action: Checks if the user does not have the global n flag AND does not have the channel m flag for #foo ``` ```APIDOC Flag Mask: ||+b Action: Checks if the user has the bot flag b ``` -------------------------------- ### Eggdrop Account Tracking Status (Best-Effort Example) Source: https://docs.eggheads.org/using/accounts This example output from the `.status` command indicates that Eggdrop is operating in 'best-effort' account tracking mode due to missing server capabilities. It highlights which required capabilities, such as 'extended-join', are not supported by the IRC server, leading to reduced accuracy. ```Console Output Loaded module information: #eggdroptest : 2 members, enforcing "+tn" (greet) Channels: #eggdroptest (need ops) Account tracking: Best-effort (Missing capabilities: extended-join, see .status all for details) <---- This line Online as: Eggdrop (Eggdrop) ``` -------------------------------- ### Example Manifest.json for Autoscripts Package Source: https://docs.eggheads.org/using/autoscripts A sample `manifest.json` file demonstrating the structure for autoscripts packages, including metadata like name, version, description, and configurable settings for user-defined variables and required Tcl packages. Note: Commas have been added to ensure valid JSON. ```json { "schema": 1, "name": "woobie", "version_major": 1, "version_minor": 0, "description": "An example script to help developers write autoscript packages", "long_description": "This is an example script to help understand the autoscript system. Yeah, it doesn't really do anything, but that's besides the point. It could, and that should be enough for anyone", "config": { "loaded": 0, "udef": { "myflag": { "type": "flag", "description": "Activate the script on by doing" }, "mystr1": { "type": "str", "description": "Flood limit, modify the channel value for this doing", "value": "{10:6}" }, "mystr2": { "type": "str", "description": "Change that with", "value": "Just my string" }, "myint1": { "type": "int", "description": "Number of allowed kicks, could be change with", "value": 4 } }, "requires": "tls", "vars": { "woobie_dict": { "description": "A setting that accepts a dict as a value", "value": "{quiet q}" }, "woobie_setting": { "description": "A normal setting to enable or disable something", "value": "1" }, "woobie_string": { "description": "A setting taking a string, like a filename or something", "value": "woobie" }, "woobie(array)": { "description": "A setting that is set as an array", "value":"another string" } } } } ``` -------------------------------- ### Add IRC Servers for Eggdrop Connection Source: https://docs.eggheads.org/tutorials/setup Specifies the IRC servers the Eggdrop bot should attempt to connect to. Multiple servers can be listed for redundancy. Examples include IPv4, IPv6, and SSL connections, with optional passwords. ```Eggdrop Config server add you.need.to.change.this:6667 server add another.example.com:7000:password server add [2001:db8:618:5c0:263::]:6669:password server add ssl.example.net:+6697 ``` -------------------------------- ### Clone Eggdrop Git Repository Source: https://docs.eggheads.org/install/readme Command to clone the official Eggdrop development repository from GitHub, allowing users to obtain the latest, potentially unstable, source code directly from the development branch. ```bash git clone https://github.com/eggheads/eggdrop.git ``` -------------------------------- ### Eggdrop Logfile Command Usage Examples Source: https://docs.eggheads.org/using/core Illustrates common usage patterns for the 'logfile' command, demonstrating how to log specific event types across all channels or for a particular channel to designated log files. Note that some modes (d, h, r, t, v) can quickly fill disk quotas. ```Eggdrop Command logfile mco * "logs/eggdrop.log" logfile jpk #lamest "logs/lamest.log" ``` -------------------------------- ### Pull Official Eggdrop Docker Image Source: https://docs.eggheads.org/install/readme Command to download the latest official Eggdrop Docker image, providing a convenient and containerized environment for running the bot without manual compilation. ```bash docker pull eggdrop:latest ``` -------------------------------- ### Use Variables in Eggdrop Configuration Files Source: https://docs.eggheads.org/using/tricks This example illustrates how to define and use variables within an Eggdrop configuration file, leveraging its Tcl nature. It shows how to set a common base string and then use it to dynamically construct file paths for user and channel files, promoting reusability and easier management of settings. ```Tcl set myvar "yourbot" set userfile "$myvar.user" set chanfile "$myvar.chan" ``` -------------------------------- ### Configure Eggdrop Channel Settings Source: https://docs.eggheads.org/tutorials/firststeps This section explains how to modify channel-specific settings using the '.chanset' command. It advises consulting '.help chaninfo' for a full list of available options and provides an example of enforcing channel modes like 's' (secret), 'n' (no external messages), and 't' (topic settable by ops only). ```IRC Command .help chaninfo ``` ```IRC Command .chanset #channel chanmode +snt ``` -------------------------------- ### Generate Crontab Entry for Eggdrop Autostart (Default) Source: https://docs.eggheads.org/install/readme This command uses the `autobotchk` script to set up a crontab entry. By default, this entry will periodically check if the Eggdrop bot is running and attempt to restart it if it's not, offering a simpler, older method for ensuring bot availability. ```Shell ./scripts/autobotchk ``` -------------------------------- ### Start Eggdrop with Activated Python Virtual Environment Source: https://docs.eggheads.org/using/python To ensure Eggdrop uses the dependencies installed in your virtual environment, you must activate the virtual environment before starting the bot. This command performs both steps. ```Bash cd eggdrop && source .venv/bin/activate && ./eggdrop ``` -------------------------------- ### Download Eggdrop Development Version via Git Source: https://docs.eggheads.org/tutorials/setup Instructions to clone the Eggdrop GitHub repository to obtain the latest development version. This method provides the most current features but may be less stable. ```Bash git clone https://github.com/eggheads/eggdrop.git cd eggdrop ``` -------------------------------- ### Example: Tcl Listen Port Setup and Handler Source: https://docs.eggheads.org/using/tcl-commands This example demonstrates setting up a listen port on `6687` and associating it with the `listen:grab` procedure. When a new connection arrives, `listen:grab` is called with the new connection's index (`newidx`), which is then immediately put under control of `listen:control`. ```Tcl listen 6687 script listen:grab proc listen:grab {newidx} { control $newidx listen:control } ``` -------------------------------- ### Load Woobie Module in Eggdrop Configuration Source: https://docs.eggheads.org/modules/mod/woobie This configuration line is used to instruct the Eggdrop bot to load the Woobie module when it starts up. It should be added to your main Eggdrop configuration file (e.g., eggdrop.conf). The Woobie module requires no external dependencies. ```Eggdrop Configuration loadmodule woobie ``` -------------------------------- ### Eggdrop Hybrid Configuration: Load Blowfish Module Source: https://docs.eggheads.org/using/pbkdf2 This snippet shows the configuration directive to ensure the 'blowfish' module is loaded in the Eggdrop configuration file. This is crucial for hybrid setups where both blowfish and PBKDF2 password hashing methods are used, allowing for backward compatibility with existing userfiles. ```config loadmodule blowfish ``` -------------------------------- ### Compile Eggdrop Source Code Source: https://docs.eggheads.org/tutorials/setup Executes the 'make' command to compile the Eggdrop source code into an executable binary. This step builds the bot from the configured source files. ```Shell make ``` -------------------------------- ### Configure Eggdrop Build Environment Source: https://docs.eggheads.org/tutorials/setup Executes the './configure' script to prepare the Eggdrop source for compilation, checking system dependencies and setting up build parameters specific to the shell environment. ```Shell ./configure ``` -------------------------------- ### Set Up Eggdrop Module Compilation Source: https://docs.eggheads.org/tutorials/setup Commands to set up which modules are to be compiled with Eggdrop. 'make config' uses default module selections, while 'make iconfig' allows for interactive module selection. ```Shell make config ``` ```Shell make iconfig ``` -------------------------------- ### Implement MODULE_start for Module Initialization Source: https://docs.eggheads.org/modules/writing This snippet defines the `MODULE_start` function, which serves as the primary entry point for an Eggdrop module upon loading. It demonstrates how to initialize the global function table, register the module with its name and version, and declare dependencies on other modules. The function should return `NULL` on successful loading or a non-`NULL` string containing an error message if initialization fails. ```C char *MODULE_start(Function *func_table) ``` ```C global = func_table; ``` ```C module_register(MODULE_NAME, MODULE_table, MAJOR, MINOR); ``` ```C module_depend(MODULE_NAME, "another-module", MAJOR, MINOR); ``` -------------------------------- ### Introduce Yourself and Set Password on Eggdrop Bot via IRC Source: https://docs.eggheads.org/tutorials/setup These commands are used within an IRC client to introduce yourself to the bot and set your owner password. Replace `` with the bot's nickname and `` with your desired password. ```IRC /msg hello ``` ```IRC /msg pass ``` -------------------------------- ### Switch to Eggdrop Stable Version via Git Source: https://docs.eggheads.org/tutorials/setup After cloning the Eggdrop repository, use this command to switch your local copy to the most recent stable release (1.10 series). This is recommended for most users seeking a reliable version. ```Bash git checkout stable/1.10 ``` -------------------------------- ### Install Python Package in Eggdrop Virtual Environment Source: https://docs.eggheads.org/using/python This command activates the previously created virtual environment and then uses pip to install a specified Python package (e.g., 'requests') into that isolated environment. ```Bash cd eggdrop && source .venv/bin/activate && pip install requests ``` -------------------------------- ### Change Directory to Eggdrop Source Source: https://docs.eggheads.org/tutorials/setup Command to navigate into the newly extracted Eggdrop source directory (e.g., 'eggdrop-1.10.0') before proceeding with compilation steps. ```Shell cd eggdrop-1.10.0 ``` -------------------------------- ### Extract Eggdrop Source Archive Source: https://docs.eggheads.org/tutorials/setup Commands to decompress and extract the Eggdrop source code from a .tar.gz archive. Provides alternatives for different compression utilities and scenarios. ```Shell tar zxvf eggdrop-1.10.0.tar.gz ``` ```Shell gunzip eggdrop-1.10.0.tar.gz ``` ```Shell tar xvf eggdrop-1.10.0.tar ``` -------------------------------- ### Implement Eggdrop Module Initialization Function Source: https://docs.eggheads.org/tutorials/module The `woobie_start` function is the module's entry point, called when Eggdrop loads the module. It initializes global function pointers, registers the module with its name and function table, and checks for Eggdrop version dependencies. ```C char *woobie_start(Function *global_funcs) { global = global_funcs; /* Register the module. */ module_register(MODULE_NAME, woobie_table, 2, 1); /* ^--- minor module version * ^------ major module version * ^-------------------- module function table * ^--------------------------------- module name */ if (!module_depend(MODULE_NAME, "eggdrop", 108, 0)) { module_undepend(MODULE_NAME); return "This module requires Eggdrop 1.8.0 or later."; } } ``` -------------------------------- ### Get Eggdrop Status Information Command Source: https://docs.eggheads.org/using/tcl-commands Provides Eggdrop status information similar to the .status command in partyline. Users can specify a 'type' (cpu, mem, cache, ipv6) to get specific info, or omit it for all. Returns a flat list of name-value pairs. ```APIDOC status [type] Description: provides eggdrop status information similar to the .status command in partyline. The available types of information are: cpu: total cpu time spent by eggdrop mem: dynamically allocated memory excluding the Tcl interpreter cache: user entries cache hits (in %) ipv6: shows whether IPv6 support was compiled in Returns: the requested information type or all information if type isn’t specified. The format is a flat list of name-value pairs. Module: core ``` -------------------------------- ### Eggdrop Config: set learn-users Source: https://docs.eggheads.org/tutorials/setup Determines how users are added to the bot. If set to 1, users can add themselves; if 0, only owners/masters can add them. ```APIDOC ``` -------------------------------- ### Get Current Directory Command Source: https://docs.eggheads.org/using/tcl-commands Retrieves the current directory of a file system user. ```APIDOC getpwd Returns: the current directory of a file system user Module: filesys ``` -------------------------------- ### Eggdrop Config: set must-be-owner Source: https://docs.eggheads.org/tutorials/setup Enhances security for `.tcl` and `.set` commands. Setting to 1 or 2 (for 1.3.26+) is highly recommended. ```APIDOC set must-be-owner: description: Security setting for .tcl and .set commands. recommended_value: 1 (or 2 for 1.3.26+) notes: Strongly recommended if .tcl and .set commands are enabled. ``` -------------------------------- ### Get Directories Command Source: https://docs.eggheads.org/using/tcl-commands Retrieves a list of subdirectories in the specified directory; the directory is relative to dcc-path. ```APIDOC getdirs Returns: a list of subdirectories in the directory given; the directory is relative to dcc-path Module: filesys ``` -------------------------------- ### Get Files Command Source: https://docs.eggheads.org/using/tcl-commands Retrieves a list of files in the specified directory; the directory is relative to dcc-path. ```APIDOC getfiles Returns: a list of files in the directory given; the directory is relative to dcc-path Module: filesys ``` -------------------------------- ### Channel Setting: revengebot Source: https://docs.eggheads.org/modules/mod/channels Similar to 'revenge', but only triggers punishment if a bot gets deopped, kicked, or banned. ```APIDOC revengebot: This is similar to to the ‘revenge’ option, but it only triggers if a bot gets deopped, kicked or banned. ``` -------------------------------- ### Get Channel Information Source: https://docs.eggheads.org/using/tcl-commands Retrieves a list of information about the specified channel’s settings. Part of the 'channels' module. ```APIDOC channel info Returns: a list of info about the specified channel’s settings. Module: channels ``` -------------------------------- ### Troubleshoot Eggdrop Bot Process Source: https://docs.eggheads.org/tutorials/setup These shell commands are useful for troubleshooting a non-responsive Eggdrop bot. 'kill pid' terminates a process by its process ID, and 'ps x' lists all running processes to help identify the bot's PID. ```Shell kill pid ``` ```Shell ps x ``` -------------------------------- ### Source Python Script in Eggdrop Configuration Source: https://docs.eggheads.org/modules/mod/python Place this line in your Eggdrop configuration to load a Python script from the 'scripts/' folder when Eggdrop starts. ```Eggdrop Config pysource scripts/myscript.py ``` -------------------------------- ### HTGT (HOSTTARGET) Bind Type Source: https://docs.eggheads.org/using/twitch-tcl-commands Called when a broadcaster starts or stops hosting another Twitch channel. `mask` is in the format “#channel target”, where #channel is the hosting channel and target is the name of the broadcaster being hosted by #channel. Similarly for the proc, `target` is the name of the Twitch channel being hosted by `chan`. A value of `-` in `target` indicates that the broadcaster has stopped hosting another channel. `viewers` contains the number of viewers in `chan` that are now watching `target` when hosting starts, but has been found to not be reliably provided by Twitch. ```APIDOC HTGT (HOSTTARGET): bind htgt procname target: The name of the Twitch channel being hosted by 'chan'. A value of '-' indicates hosting has stopped. chan: The hosting channel. viewers: The number of viewers in 'chan' now watching 'target' when hosting starts (often unreliable). Mask Matching: "#channel target", where #channel is the hosting channel and target is the name of the broadcaster being hosted. ``` -------------------------------- ### Get Unix Timestamp Source: https://docs.eggheads.org/using/tcl-commands Returns the current Unix timestamp, representing the number of seconds that have passed since January 1, 1970 (GMT). ```APIDOC unixtime() Description: Returns the current Unix timestamp. Parameters: None Returns: int - A long integer representing seconds since 00:00 Jan 1, 1970 (GMT). Module: core ``` -------------------------------- ### Get DCC Idle Time (getdccidle) Source: https://docs.eggheads.org/using/tcl-commands Returns the duration, in seconds, that a specified DCC chat, file system, or script user has been idle. ```APIDOC getdccidle : Parameters: - idx: The index of the DCC chat/file system/script user. Returns: number of seconds the dcc chat/file system/script user has been idle. Module: core ``` -------------------------------- ### Compile Eggdrop with TLS Support Source: https://docs.eggheads.org/using/tls Provides command-line instructions for configuring Eggdrop's build process to enable or disable TLS, and to specify custom OpenSSL library paths. ```Shell ./configure ``` ```Shell ./configure --disable-tls ``` ```Shell ./configure --with-sslinc= --with-ssllib= ``` -------------------------------- ### .share [files] … Source: https://docs.eggheads.org/modules/mod/filesys Marks a file as shared. This means that other bots can get the file remotely for users on their file systems. By default, files are marked as unshared. ```APIDOC .share [files] … Marks a file as shared. This means that other bots can get the file remotely for users on their file systems. By default, files are marked as unshared. ``` -------------------------------- ### Eggdrop Config: set chanfile Source: https://docs.eggheads.org/tutorials/setup Configures the file used to store 'dynamic' channels, allowing the bot to rejoin them after restarts. Can be disabled by setting to empty string. ```APIDOC set chanfile: description: Stores 'dynamic' channels for bot rejoining after restart. notes: Good for frequent channel changes. Can be set to "" to disable. ``` -------------------------------- ### Eggdrop Bind: LOST Source: https://docs.eggheads.org/using/tcl-commands Triggered when a DCC SEND transfer gets lost, such as when the connection is terminated before all data was successfully sent/received. This is typically caused by a user abort. ```APIDOC Bind Type: LOST Syntax: bind lost Procname Signature: procname handle: The DCC transfer handle. nick: The nickname of the user involved in the transfer. path: The path of the file being transferred. bytes-transferred: Number of bytes transferred before loss. length-of-file: Total length of the file. Description: Triggered when a DCC SEND transfer gets lost, such as when the connection is terminated before all data was successfully sent/received. This is typically caused by a user abort. Module: transfer ``` -------------------------------- ### Get DCC Away Message (getdccaway) Source: https://docs.eggheads.org/using/tcl-commands Retrieves the away message for a specified DCC chat user. If the user is not set away, an empty string is returned. ```APIDOC getdccaway : Parameters: - idx: The index of the DCC chat user. Returns: away message for a dcc chat user (or "" if the user is not set away). Module: core ``` -------------------------------- ### Get Bot's IP Address Source: https://docs.eggheads.org/using/tcl-commands Returns the bot's current IP address as a long integer, useful for network-related operations like DCC requests. ```APIDOC myip() Description: Retrieves the bot's IP address. Parameters: None Returns: int - A long integer representing the bot's IP address. Module: core ``` -------------------------------- ### callevent Source: https://docs.eggheads.org/using/tcl-commands Triggers the event bind manually for a certain event. You can call arbitrary events here, even ones that are not pre-defined by Eggdrop. For example: callevent rehash, or callevent myownevent123. ```APIDOC Returns: nothing Module: core ``` -------------------------------- ### Eggdrop Command to Join a Channel Source: https://docs.eggheads.org/tutorials/firststeps This command, executed on the Eggdrop partyline, instructs the bot to join a specified IRC channel. Replace '#channel' with the actual name of the channel you want the bot to join. ```Eggdrop Command .+chan #channel ``` -------------------------------- ### Telnet Command to Connect to Eggdrop Source: https://docs.eggheads.org/tutorials/firststeps This command is used in a shell or command prompt to establish a telnet connection to the Eggdrop bot's partyline. It requires the bot's IP address and the listening port, which can be found in the bot's startup output or configuration. ```Shell telnet ``` -------------------------------- ### DCC Send Command Source: https://docs.eggheads.org/using/tcl-commands Attempts to start a DCC file transfer to the given nick; the filename must be specified either by full pathname or in relation to the bot’s startup directory. ```APIDOC dccsend Description: attempts to start a dcc file transfer to the given nick; the filename must be specified either by full pathname or in relation to the bot’s startup directory Returns: 0: success 1: the dcc table is full (too many connections) 2: can’t open a socket for the transfer 3: the file doesn’t exist 4: the file was queued for later transfer, which means that person has too many file transfers going right now 5: the file could not be opened or temporary file could not be created Module: transfer ``` -------------------------------- ### Eggdrop Config: set require-p Source: https://docs.eggheads.org/tutorials/setup Controls whether party line access is user-specific. Setting to 1 allows for granular control over user access. ```APIDOC set require-p: description: Allows user-specific party line access. recommended_value: 1 notes: Useful feature for granular access control. ``` -------------------------------- ### Configure Eggdrop New User Notification Source: https://docs.eggheads.org/using/core Determines who receives a notification (note) when new users are learned by the Eggdrop bot. The example suggests notifying the bot's owners. ```Eggdrop Configuration set notify-newusers “$owner” ``` -------------------------------- ### Register ECDSA Public Key with NickServ Source: https://docs.eggheads.org/tutorials/firststeps Registers the generated ECDSA public key fingerprint with the NickServ service, allowing for SASL authentication using the ECDSA-NIST256P-CHALLENGE method. ```IRC /msg NickServ set pubkey ``` -------------------------------- ### Create New Git Branch for Eggdrop Patch Source: https://docs.eggheads.org/using/patch This command creates a new local Git branch for your patch. Replace '' with a meaningful name that describes your changes, such as 'feature/my-new-feature' or 'bugfix/fix-issue-123'. ```Bash git checkout -b ``` -------------------------------- ### Eggdrop Autoscripts Partyline Command: fetch Source: https://docs.eggheads.org/using/autoscripts The `fetch` command allows users to download a specified autoscript from the Eggdrop website. Upon successful download, the script is automatically placed into the `autoscript/` directory, making it ready for configuration and loading. ```APIDOC fetch