David Demelier, 01/26/2015 11:38 AM
h2. Is SSL supported?
Yes. But you need libircclient version 1.7 or higher. Starting with irccd 1.1, the libircclient is bundled with irccd.
h2. 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.
h2. Why Lua instead of (insert my favorite language here)?
First, Lua was my favorite high level language. Also Lua is very easy to integrate with C and C++ code, it's popular for being very fast and clean. Lua provides only the basic of a scripting language, thus being very slim and easy to learn.
See also question below.
h2. Do you plan to add (my language)?
No, there are plenty of bots which supports your language.
However, if _my language_ is ECMAScript then you can wait irccd 2.0 which will be shipped with JS instead of Lua.
h2. Why do I get "uninitialized state" error on some plugins?
This happens when you write code outside [[Lua supported events|event functions]]. You can write globals, variables and such. But some functions in the Lua API require the plugin metadata information which is set after the [[Irccd-event-onLoad|onLoad]] event.
For example, the following code will raises the error because [[Irccd-logger-log|logger.log]] use the plugin metadata information.
local logger = require "irccd.logger"
Instead, move the code inside the [[Irccd-event-onLoad|onLoad]] function.
h2. Is it possible to combine commands like @!foo !bar@?
Absolutely no, and will never. The special [[irccd-event-onCommand|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 seeks for the plugin stats and pass the trailing text to the plugin command.
In that way, the plugins will never conflicts 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”.
h2. Is it possible to integrate plugin dependencies?
No, plugins should be independant. There are no way to require a plugin. However, you can still verify if a plugin is loaded via the [[Api-irccd-plugin|irccd.plugin]] API and eventually load it using [[Irccd-plugin-load|plugin.load]].
If you just need per-plugin communication, consider using a [[Api-irccd-thread-pipe|irccd.thread.pipe]].
h2. What does irccd drink?
Irccd only drinks white beer and French cognac.