https://github.com/iam4x/diskord
JavaScript library to simply create a Discord bot
https://github.com/iam4x/diskord
bot discord javascrit library
Last synced: 2 months ago
JSON representation
JavaScript library to simply create a Discord bot
- Host: GitHub
- URL: https://github.com/iam4x/diskord
- Owner: iam4x
- Created: 2018-04-04T21:38:39.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-04-04T21:44:09.000Z (about 8 years ago)
- Last Synced: 2025-04-02T17:51:35.329Z (about 1 year ago)
- Topics: bot, discord, javascrit, library
- Language: JavaScript
- Size: 939 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Diskord 🤖
> JavaScript/Node.js library to create simple answer bots for [Discord](https://discordapp.com/) messaging app
>
> **This library is not production bullet-proof ready, use at your own risk**

* `$ npm install -S diskord` OR
* `$ yarn add diskord`
## Requirements
* Nodejs v6
* A discord bot token ([guide how to get one](https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token))
## Usage
### Create your bot instance
First, you will need to create your bot instance aka login to the bot.
```js
const Diskord = require('diskord');
const bot = new Diskord({ token: 'XXXX' });
```
### Register a simple answer
Then you can create actions, theses actions will react to a message sent by a user. You can filter actions to trigger them only on a specified channel or a server.
Let's create a simple action, the ping request:
```js
bot.registerAction({
trigger: 'ping',
action: 'pong'
});
```
> Writing `ping` or `!ping` in the channel where the bot is present will trigger the action.
### Register an action with a function
For more complex operations you can register a function to your action:
```js
bot.registerAction({
trigger: 'hi',
action: function(params) {
// params = {
// author: {},
// args: string[],
// reply: Function
// }
reply(`Welcome ${params.author.username}! How are you?`);
}
});
```
### Register an action accepting arguments
Most of the time you want user to interact with the bot by providing options, it's easy to do it:
```js
bot.registerAction({
trigger: 'weather',
action: function(params) {
const city = params.args[0];
if (!city) return reply('Usage: !weather Paris');
[...]
reply(`The temperature in ${city} is ...`);
}
});
```
## API
### `new Diskord(SimpleBotOptions)`
```js
SimpleBotOptions = {
token: 'XXXX' // Secret bot token
}
```
### `registerAction(Action)`
```js
Action = {
trigger: string // Message (with or without prefix '!') to match
action: string | ActionFunction // Action to start on when trigger match
}
ActionFunction = function(params) {
// params = {
// author: { username: string },
// args: string[],
// reply: Function
// }
}
```
## TODO
* [ ] Spam protection
* [ ] Documentation on how to make great messages
* [ ] Support of attachment in answers
* [ ] Ideas? Create an issue!