Middleware should have the function signature of next, event, data.
Example (Tip: Don't want your middleware to run on all events?)
bot.use(function (next, event, data) {
const eventsICareAbout = ['message', 'something'];
if(eventsICareAbout.indexOf(event) == -1) {
next();
}
... Deal with your event ...
});- middleware
- .use(fn) ⇒
this - .run(done) ⇒
this
- .use(fn) ⇒
Add middleware to the bot.
Kind: static method of middleware
Returns: this - Current bot
| Param | Type | Description |
|---|---|---|
| fn | function |
Middleware function |
Example
bot.use(function (next, event, data) {
next();
});Execute middleware
Kind: static method of middleware
Returns: this - Current bot
| Param | Type | Description |
|---|---|---|
| ... | Any |
Arguments to be passed to middleware |
| done | function |
Function to be called after middleware has executed |
Plugins add many different pieces of functionality to a bot without having to manage everything in one repository.
Example
const plugin = function (options, next) {
... Add listeners or functionality ...
next();
};
bot.register(plugin);Example (You can also pass options to plugins by specifiying a `register` function (the plugin) and an `options` object.)
const plugin = function (options, next) {
console.log(options.players); // 4
next();
};
bot.register({ register: plugin, options: { players: 4 });Example (`register` also can take an array of plugins.)
bot.register([require('plugin1'), { register: require('plugin2'), options: { players: 4 }]);Register plugins to the bot.
Kind: static method of plugin
| Param | Type | Description |
|---|---|---|
| plugins | Array | Object | function |
One or more plugins to register. |
| plugins.register | function |
Options to pass to the plugin |
| plugins.options | Object |
Options to pass to the plugin |
| callback | function |
Listen
Kind: static method of router
| Param | Type | Description |
|---|---|---|
| pattern | RegExp | String |
Pattern to match incoming messages to. |
| callback | function |
Example (Listen takes either a string or regular expression and a callback. The callback is called whenever a message matching that string/regexp is seen. The callback is called with the route, message body, and a respond function to reply.)
bot.listen('hello', function (route, message, respond) {
respond('world');
});Example (You can also use capture groups in a regular expression. They are returned as `route.matches`.)
bot.listen('hello (.*)', function (route, message, respond) {
console.log(route.matches);
});Given a message, trigger the first applicable listener.
Kind: static method of router
| Param | Type | Description |
|---|---|---|
| path | String |
Message to match. |