botpress-discord
Version:
A Botpress module using Eris to interact with Discord.
115 lines (86 loc) • 2.44 kB
Markdown
# botpress-discord
## Installation
Installing modules on Botpress is simple. By using the CLI, you only need to type this command in your terminal to add the discord module to your bot.
```
botpress install discord
```
It's also possible to install it though the Botpress UI in the modules section. (probably)
## Get started
##### 1. Create a [**new Discord app**](https://discordapp.com/developers/applications/me)
<img alt="Create app" src="/assets/create-app-discord.png" width="500px" />
#### 2. Add a bot user to your app
Just press the "Add bot user button"
#### 3. Copy the newly generated token
#### 4. Insert the token into the config
The config is located at _modules_config/botpress-discord.json_. Insert the token as string at the key "botToken".
#### 5. ????
#### 6. Profit!
## Features
### Incoming
* [Text messages](#text-messages)
### Outgoing
* [Text messages](#text-messages-1)
* [Attachments](#attachments)
* [Images](#images)
## Reference
### Incoming
You can listen to incoming events easily with Botpress by using the built-in "hear" function.
##### Ready
```js
bp.hear({platform: "discord", type: "ready"}, (event) => {
let client = event.discord;
})
```
##### Messages
```js
bp.hear({platform: "discord", type: "message", text: /^hello/i}, event => {
bp.discord.sendText(event.channel.id, "Welcome!")
})
```
##### User status update
```js
bp.hear({platform: "discord", type: "status"}, (event) => {
let user = event.user,
status = event.status,
game = event.game;
});
```
##### User typing
```js
bp.hear({platform: "discord", type: "typing"}, (event) => {
let user = event.user,
channelID = event.channelID;
});
```
#### Text messages
An `event` is sent to middlewares for each incoming text message from Discord.
```js
{
platform: "discord",
type: "text",
user: e.author,
text: e.content,
channel: e.channel,
raw: e
}
```
### Outgoing
#### Text messages
```js
bp.discord.sendText(channelId, text)
```
###### You can also pass extra params to this method (check out [Eris](https://github.com/abalabahaha/eris) documentation):
```js
bp.discord.sendText( event.channel.id, "Welcome!", { 'embed': {
title: "I'm an embed!",
description: "Here is some more info, with **awesome** formatting.\nPretty *neat*, huh?",
}});
```
#### Attachments
```js
bp.discord.sendAttachment(channelId, description, uri)
```
#### Images
```js
bp.discord.sendImage(channelId, uri)
```