Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iam4x/diskord
JavaScript library to simply create a Discord bot
https://github.com/iam4x/diskord
bot discord javascrit library
Last synced: 19 days 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 (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-04-04T21:44:09.000Z (over 6 years ago)
- Last Synced: 2024-10-28T04:59:59.035Z (2 months 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**![Simple Discord Bot](./example.gif)
* `$ 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!