xmpp-bot
Version:
A bot that handles commands for you
51 lines (36 loc) • 1.5 kB
Markdown
A bot that handles commands for you
[](http://standardjs.com/)
[](https://raw.githubusercontent.com/skyrising/xmpp-bot/master/LICENSE)
```javascript
const XMPPBot = require('xmpp-bot');
let bot = new XMPPBot({
jid: 'juliet@capulet.tld',
password: 'romeo',
rooms: [
{jid: 'coven@chat.shakespeare.lit', nick: 'juliet'}
]
})
// register a command
bot.command('name', (answer, args, state, env) => {
... // do some work
answer(...) // answer with results
})
// or just return answer
bot.command('echo', (answer, args) => args.join(' '))
// disconnect when you're done (automatically done on process exit)
bot.disconnect();
```
- [node-xmpp-client](http://node-xmpp.org/doc/client.html)'s
- `rooms`: List of rooms `{jid, nick}` the bot should join
Command functions are passed 4 arguments:
- answer: function that sends the provided text or XML element
- answer.broadcast: broadcast message to all rooms
- args: array of arguments
- state: an object that is saved for this command (`=env[command-name]`)
- env: state shared by all commands
Commands are executed when a message sent to the bot starts with their name
or when the bot is mentioned with `@nick <command> [args]` in a MUC (multi-user-chat)