Project

General

Profile

FAQ » History » Version 23

David Demelier, 09/05/2019 02:00 PM

1 1 David Demelier
h1. FAQ
2
3
{{>toc}}
4
5
h2. Is SSL supported?
6
7 14 David Demelier
Yes.
8 1 David Demelier
9
h2. Why plugins are not loaded per server?
10
11 16 David Demelier
This is a good question.
12
13
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.
14 1 David Demelier
15 22 David Demelier
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.
16 20 David Demelier
17
Example:
18
19
<pre><code class="ini">
20
# Create a whitelist for plugin 'xyz'.
21
[rule]
22
plugins = xyz
23
action = drop
24
25
# Re-enable 'xyz' on desired channels.
26
[rule]
27
servers = "myserver"
28
channels = "#mychannel"
29
plugins = xyz
30
action = accept
31
</code></pre>
32
33 23 David Demelier
h2. Why Javascript instead of (insert my favorite language here)?
34 1 David Demelier
35 23 David Demelier
Because Javascript is a very light language easy to embed. The irccd implementation uses "duktape":http://duktape.org.
36 1 David Demelier
37 23 David Demelier
* Starting with [[Version-3-0-0|3.0.0]] you can write plugins in C++.
38
* Starting with [[Version-3-1-0|3.1.0]] you can write hooks in any language, but they are less powerful than plugins though.
39
40 9 David Demelier
See also question below.
41 1 David Demelier
42
h2. Do you plan to add (my language)?
43 14 David Demelier
44 1 David Demelier
No, there are plenty of bots which support your language.
45
46
h2. Is it possible to combine commands like @!foo !bar@?
47
48 23 David Demelier
Absolutely no, and will never. The special @onCommand@ event is dedicated to specific plugin.
49 2 David Demelier
50 14 David Demelier
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.
51 4 David Demelier
52 14 David Demelier
In that way, the plugins will never conflict on onCommand. This security is called plugin namespaces.
53
54 5 David Demelier
By the way, this does not make sense and I don't know many bot which support this “feature”.
55 7 David Demelier
56 1 David Demelier
h2. Is it possible to integrate plugin dependencies?
57 7 David Demelier
58 14 David Demelier
No, plugins should be independant.
59 7 David Demelier
60 23 David Demelier
There are no ways to require a plugin. However, you can still verify if a plugin is loaded via the @Irccd.Plugin.info@ function and eventually load it using @Irccd.Plugin.load@
61 7 David Demelier
62 12 David Demelier
h2. Does irccd support DCC?
63 10 David Demelier
64
Not at the moment.
65
66 11 David Demelier
h2. What if I use a specific encoding?
67
68
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.
69
70 13 David Demelier
h2. The bot does not connect to the Freenode server!
71
72
Be sure to set a different identity (with different nickname **and** username) because **irccd** is a registered nickname.
73
74 2 David Demelier
h2. What does irccd drink?
75
76 6 David Demelier
Irccd only drinks white beer and French cognac.