cordless is a simple wrapper for discord.js that allows you to create extensive and extensible Discord bots.
yarn add cordless
npm i cordless
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')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:
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')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
Run the unit tests:
yarn test
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
Huge shoutout to fivenp (@fivenp) for the amazing visual assets. Go check out his work!
This project is licensed under the ISC License - see the LICENSE file for details.