Overview
On this page you will find description of core funtionality which might be available in plugins, basic information on plugins documentation and usage, as well as some conventions used in the documentation. Documentation for the actual functions of the bot you can find on the plugins page. Documentation for individual plugins assumes that you have read the core documentation (this page), i.e. assumes that you know the basics and are familiar with terminology.
Back to top
Plugins Overview
Most, if not all, of ZofBot's functionality is driven by plugins, extensions that are loaded into the core on startup. Core watches events, such as channel messages or /notice's to the bot and tells the plugins about the event. If plugin recognizes the event as a command, "something" will happen, such as start of validation, or return of the factoid value.
Back to top
Events and Basic Operation
There are four event types (well, there is more, but you shouldn't be concerned about them unless you are planning to develop ZofBot). Not all plugins respond to all four types of the events, so make sure to take a look at the manual for a plugin in question.
-
Public Event
Whenever someone sends a normal message into the channel ZofBot's core sends out "public" event to the plugins. To prevent accidential triggering of commands only very few plugins will respond to public events.
Example
<Zoffix> ]css
<_ZofBot4> CSS: http://w3.org/Style/CSS/
-
Addressed Event
Addressed events are sent out whenever one addresses the bot, (i.e. prefixes a particular command with ZofBot's nickname in the channel). Almost all plugins use this event for triggering in public.
Example
<Zoffix> _ZofBot4, alarm set 10 HAI!
<_ZofBot4> Zoffix, Started alarm, it will ring in 10 second(s)
-
Notice And Private Message Events
Notice and private messages are sent with /notice and /msg commands in most IRC clients. Almost all plugins support this kind of events to allow you to use the bot privately without disturbing other members of the channel, or to use the bot while not being on the same channel as him.
The difference between the two is only the kind of response type you will get: sending /notice will make the bot respond with a /notice, as well as sending /msg will make ZofBot respond via /msg.
Back to top
Error Feedback
Many plugins use /notice type of message to give feedback about an error in syntax or failed request. So pay attention to those in case something doesn't work as you would expect.
Example
<Zoffix> ]non existent factoid
-_ZofBot4- Nothing was found, try searching http://xrl.us/wcdx
Back to top
Command Aliases
Quite a lot of plugins offer aliases and shorthands for many commands. For example, commands show and list from the Alarm plugin are aliases, i.e. they do the exact same thing. Shorthands do the same thing as well, except they are just a shorter version of a command, i.e. a shorthand for command value could be letter v to save typing to people who are already fluent with plugin's syntax.
Back to top
Output Redirect
Core provides plugins with ability to redirect the output to a certain person in a certain mode. Note that some plugins might not have this functionality enabled.
To redirect the output of a certain command (providing the plugin has redirection enabled) simply postfix it with one of the mode selectors following the nick of the person the output should be redirected to. Syntax of mode selectors is as follows:
-
@ - In-Channel Address Mode
Will direct the output into the channel, prefexing it with the nickname. This is useful to indicate to whom you are responding, especially because it will trigger the "highlight" for said person in most IRC clients.
Example
<Zoffix> ]css @ FooBar
<_ZofBot4> FooBar, CSS: http://w3.org/Style/CSS/
-
% - Notice Mode
This mode will redirect the output of the command to the person with the nickname specified after the '%' (percent sign). The sender will receive a notice with the same output, it is done to acknowledge that the request was understood and processed.
Example
<Zoffix> ]css % FooBar
-_ZofBot4- To FooBar: CSS: http://w3.org/Style/CSS/
Note: in the example above, person with nickname 'FooBar' would receive a notice from ZofBot containing message From Zoffix: CSS: http://w3.org/Style/CSS/.
-
> - Private Message Mode
This mode works the same as notice mode with the exception that the receiver will get the message as "private message" (/msg command in most IRC clients). However, the confirmation to the sender is still sent as a notice.
Example
<Zoffix> ]css > FooBar
-_ZofBot4- To FooBar: CSS: http://w3.org/Style/CSS/
Note: in the example above, person with nickname 'FooBar' would receive a private message from ZofBot containing message From Zoffix: CSS: http://w3.org/Style/CSS/.
Back to top
Public Use Best Practice
This section is more of a guideline for the use of the bot in public channels than a "manual". Follow it if you don't want to be hated.
-
You Are Not Alone
I see that a lot of people think that if only two or three people are talking, other 300 people are away and don't care what is happening. First of all, a lot of people (myself included) read the conversation without participating in it while doing some work. It is quite annoying to glance at the chat a minute later and having to scroll two pages up to catch up just because some smart guy decided to play with the bot. Also, a lot of people keep logs of conversations for reference, no need to fill those up with garbage.
-
Read The Fine Manual
If you don't know or forgot the syntax of a particular command, look it up in the manual or ask the channel for help. No need to flood with miserable attempts to guess the syntax/command name.
-
Don't Spam
Also, a lot of plugins support output redirection, if you are sending lengthy output to one particular person, redirect it to that person's /msg or /notice buffer. However, if you feel that a few people could benefit from bot's output, send it to the channel or use address mode. Otherwise, people interested in bot's output will repeat your message, which defeats the purpose of redirect.
-
It's Not A Toy
Sometimes, exceptionally bored individuals start playing with the bot. Looking up nasty words, googling for non-sense, trying to loop two bots between each other, trying to break the bot, or simply experimenting with different functions. Again, point number 1 applies, show respect to others who are not that bored. ZofBot accepts most commands in /notice or /msg (private message) form, so use that or go to #zofbot and play there (yes I know it's less fun this way, just deal with it).
Back to top