Thanks to visit codestin.com
Credit goes to github.com

Skip to content

🤖 Declarative Discord bot framework. Build your first bot in 5 minutes with 3 lines of code!

License

Notifications You must be signed in to change notification settings

TomerRon/cordless

Repository files navigation

cordless

Opinionated framework for creating Discord bots with minimal boilerplate

npm latest version build status semantic-release

cordless is a simple wrapper for discord.js that allows you to create extensive and extensible Discord bots.

yarn add cordless
npm i cordless

Basic Usage

Follow this guide to create a Discord bot in the Discord developer portal.

TypeScript:

import { init, BotFunction } from 'cordless'

const ping: BotFunction = {
  condition: (msg) => msg.content === 'ping',
  callback: (msg) => msg.reply('pong'),
}

init({ functions: [ping] }).login('your.bot.token')

JavaScript:

const cordless = require('cordless')

const ping = {
  condition: (msg) => msg.content === 'ping',
  callback: (msg) => msg.reply('pong'),
}

cordless.init({ functions: [ping] }).login('your.bot.token')

Advanced Usage

Automatic documentation

Auto-generate a help function for your bot by passing a helpCommand. Make sure you give your functions a name and description if you want to use them with the generated help function.

For example, let's generate a !help command:

const ping: BotFunction = {
  name: 'ping',
  description: 'Responds to your ping with a pong!\n\nUsage: ping',
  condition: (msg) => msg.content === 'ping',
  callback: (msg) => msg.reply('pong'),
}

const client = init({
  functions: [ping],
  helpCommand: '!help',
})

client.login('your.bot.token')

Now your bot can respond to !help:

Automatic documentation

Using discord.js features

The init method returns a discord.js Client.

Read the discord.js documentation for more information about using the client.

const ping: BotFunction = {
  name: 'ping',
  description: 'Responds to your ping with a pong!\n\nUsage: ping',
  condition: (msg) => msg.content === 'ping',
  callback: (msg) => msg.reply('pong'),
}

const client = init({
  functions: [ping],
  helpCommand: '!help',
})

client.on('ready', () => {
  console.log(`Logged in as ${client.user?.tag}!`)
})

client.on('message', console.log)

client.login('your.bot.token')

Local development

Clone and install the dependencies:

git clone https://github.com/TomerRon/cordless.git
cd cordless
yarn

We recommend installing yalc. Publish your changes locally with:

yalc publish

You can then test your changes in a local app using:

yalc add cordless

Unit tests

Run the unit tests:

yarn test

End-to-end tests

You must first create two bots and add them to a Discord server. One of the bots will run the cordless client, and the other bot will pretend to be a normal user.

You'll need the tokens for both of the bots, and the channel ID of a channel where the bots can send messages.

Copy the .env file and edit it:

cp .example.env .env
# .env
E2E_CLIENT_TOKEN=some.discord.token
E2E_USER_TOKEN=some.discord.token
E2E_CHANNEL_ID=12345678

Run the e2e tests:

yarn e2e

Special thanks

Huge shoutout to fivenp (@fivenp) for the amazing visual assets. Go check out his work!

License

This project is licensed under the ISC License - see the LICENSE file for details.

About

🤖 Declarative Discord bot framework. Build your first bot in 5 minutes with 3 lines of code!

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •