SelfJoin

From EggWiki
Revision as of 15:10, 27 July 2025 by Geo (talk | contribs) (Created page with "A common question from users is, "Why isn't my Eggdrop triggering a JOIN bind when it joins a channel?" The answer is it doesn't know it joined the channel- the IRCD server only sends the 'JOIN' message to clients that are already on that channel, not to the client that joined. Another common question is "Why doesn't my Eggdrop do X as soon as it joins a channel?" The answer here is that there is a small gap between when the Eggdrop joins a channel and when the IRCD se...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

A common question from users is, "Why isn't my Eggdrop triggering a JOIN bind when it joins a channel?" The answer is it doesn't know it joined the channel- the IRCD server only sends the 'JOIN' message to clients that are already on that channel, not to the client that joined.

Another common question is "Why doesn't my Eggdrop do X as soon as it joins a channel?" The answer here is that there is a small gap between when the Eggdrop joins a channel and when the IRCD sends information about the channel to the Eggdrop, like the user list, modes, etc.

To deal with these scenarios, Eggdrop has the EVNT bind type "got-chanmode", which will trigger once all the channel information is received from the server. At this point, Eggdrop has all the information it needs to properly administer the channel.

# Bind to the 'got-chanlist' event
bind evnt * got-chanlist do_action

# Say hello once we have received a channel list
proc do_action {type chan} {
    putserv "PRIVMSG $chan :Channel list received. Hi!"
    # <Do more stuff here>
}