Is SSL supported?


Why plugins are not loaded per server?

This is a good question.

I thought a lot about using plugin per server at first, this will add more flexibility about using different plugin configuration per server but will also be a huge pain to maintain for the user. Because a lot of people will use an only one irccd instance and server, I prefer to keep plugins globally and not per server basis.

This also means that by default, all plugins will be enabled on all servers and channels but it can be easily filtered with the irccd rule system.


# Create a whitelist for plugin 'xyz'.
plugins = xyz
action = drop

# Re-enable 'xyz' on desired channels.
servers = "myserver" 
channels = "#mychannel" 
plugins = xyz
action = accept

Why Javascript instead of (insert my favorite language here)?

Because Javascript is a very light language easy to embed. The irccd implementation uses duktape.

  • Starting with 3.0.0 you can write plugins in C++.
  • Starting with 3.1.0 you can write hooks in any language, but they are less powerful than plugins though.

See also question below.

Do you plan to add (my language)?

No, there are plenty of bots which support your language.

Is it possible to combine commands like !foo !bar?

Absolutely no, and will never. The special onCommand event is dedicated to specific plugin.

Internally, when a user writes a message like !stats hello (assuming that command char is '!'), then irccd will search for the plugin stats and pass the trailing text to the plugin command.

In that way, the plugins will never conflict on onCommand. This security is called plugin namespaces.

By the way, this does not make sense and I don't know many bot which support this “feature”.

Is it possible to integrate plugin dependencies?

No, plugins should be independant.

There are no ways to require a plugin. However, you can still verify if a plugin is loaded via the function and eventually load it using Irccd.Plugin.load

Does irccd support DCC?

Not at the moment.

What if I use a specific encoding?

Irccd is encoding agnostic just as the IRC protocol. If the server send UTF-8 messages, then irccd will pass these UTF-8 encoded messages to the plugins.

The bot does not connect to the Freenode server!

Be sure to set a different identity (with different nickname and username) because irccd is a registered nickname.

What does irccd drink?

Irccd only drinks white beer and French cognac.

Updated by David Demelier over 3 years ago · 23 revisions