How does Eggdrop recognize users on a channel?
Eggdrop uses hostmasks to associate a user on a channel with their 'handle' added to Eggdrop. A handle is a single username that is always constant, whereas a nickname or hostmask a user users on IRC may change. Your bot recognises you by the hostname you have on IRC (e.g. firstname.lastname@example.org). Hostnames are matched against the hostmasks added to your handle, which are in the form of email@example.com. Portions of the hostmask may use either a ? as a wildcard for a single character, or a * to match multiple characters. For example, a user joining a channel with the nickname 'Bob' and the hostmask firstname.lastname@example.org would match a user that contains a hostmask of Bobemail@example.com.
Eggdrop no longer recognizes a user/me
If you change your ident or get a new ISP, your bot may not recognize you if the old hostmask added on Eggdrop was too narrow (or your new hostmask is just totally new and crazy!). Thus, Eggdrop will not respond to things like DCC chat requests.
Eggdrop has a built in msg command called ident that is used to make the bot recognise you after your hostname has changed. The syntax is /msg <botnick> ident <password> [nickname]. The nickname portion is only required if you're using a different nick from the one your bot knows you by (e.g. if your user record on the bot is 'CoolDude' but you're using 'CoolDude2' on IRC, you'll need to specify 'CoolDude' as the nickname).
Note that if you used the advanced or complete example config file that's included with Eggdrop to create your config file, your bot may have disabled the ident command, or you may have changed it to something different. Look for the following section in your bot's config file:
# Many takeover attempts occur due to lame users blindly /msg ident'ing to # the bot and attempting to guess passwords. We now unbind this command by # default to discourage them. You can enable these commands by commenting the # following two lines. unbind msg - ident *msg:ident unbind msg - addhost *msg:addhost
To reactivate the ident command, add the following line just below the above lines:
bind msg - ident *msg:ident
If you'd like to set your ident command to something different, you can replace ident with another word (note that you don't change the *msg:ident bit - that stays the same).
The ident function isn't the only way to add new hostmasks. You can add, remove and modify your hosts using the .+host and .-host DCC commands. Type .help +host and .help -host for more info on using these commands. Of course, to use these DCC commands, you must already be logged into the bot, so you'd have to add any new hostmasks before your ident and/or host changes.
How do I auto-op users?
Remember that auto-op is a potential security risk, and we don't generally recommend it- making a user op themselves with a password incorporates both the hostmask they have with a password they know.
To make the bot auto-op all +o users who join the channel, set the channel settings to +autoop by typing .chanset #channel +autoop. If you have the channel defined in the config file, make sure you also change the autoop setting there.
You can also make the bot give auto-ops to specific +o users (instead of all +o users) using the a flag, without the need to enable autoop. Use .chattr <handle> +a #channel to make the bot auto-op that particular user when they join the channel.
How do I auto-voice users?
To make the bot auto-voice all +v users who join the channel, set the channel settings to +autovoice by typing .chanset #channel +autovoice. If you have the channel defined in the config file, make sure you also change the autovoice setting there.
You can also make the bot give auto-voice to specific +v users (instead of all +v users) using the g flag, without the need to enable autovoice. Use .chattr <handle> +g #channel to make the bot auto-voice that particular user when they join the channel.
How can I view all users who have been added to the bot?
From the partyline, type .match * 999 in DCC. Note that if you have a large userfile, this command may flood you with a lot of text.
How can I make my bot join a keyed (+k) channel?
The simplest way to do this is to set the channel's key in the enforced modes by using the chanset command, e.g. .chanset #channel chanmode +nstk <key> (you can view the current enforced modes using .chaninfo #channel). The bot will then automatically use that key to join.
Alternatively, if you don't want +k to be enforced by the bot for whatever reason, you might want to try a script for making the bot join keyed channels.
Why does Eggdrop keep changing channel modes?
You need to change the enforced channel modes in the channel settings. If the enforced modes are set to something like "+nst-ik", the bot will force the channel to have +nst, and remove +i and +k if either is set on the channel. Type .chaninfo #channel in the console to view the current enforced modes (it is the first item, listed next to Protect modes).
To change the enforced modes, type .chanset #channel chanmode <modes>. Setting .chanset #donkey chanmode +nt, for example, will force the channel to have +n and +t active, but won't interfere with any other modes.
Why does Eggdrop keep deoping a user?
There are several possible causes:
- If the nick is being opped by a special user that doesn't appear on the channel (e.g. ChanServ), you will need to make sure the allow-desync option is set to 1 in your bot's config file.
- Check the channel's bitch settings. Type .chaninfo #channel in the bot's console to do this. If the channel is in +bitch mode, type .chanset #channel -bitch to switch it off. Bitch mode allows only +o users to receive op. (.help chaninfo on the partyline for more info)
- Check the channel's revenge settings. Type .chaninfo #channel to do this. If the channel is +revenge, type .chanset #channel -revenge to switch it off. Revenge can cause your bot to give someone the +d (deop) flag if they do something naughty (e.g. deop a bot).
- Make sure the bot hasn't added the +d flag to the user. Type .whois <handle> to check for this. If the +d flag is there, use .chattr <user> -d #channel to remove it. Users are often added with the +d flag if your bot is in revenge mode.
Can Eggdrop join multiple IRC servers?
No, one Eggdrop can only join one IRC server at a time. You can link Eggdrop's together to form a botnet and relay messages back and forth with additional Tcl scripts if you want something like this.