/eris-boiler

A Discord Bot boilerplate using JavaScript and the Eris library

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

eris-boiler

discord Build Status Maintainability Test Coverage

A Discord bot framework for JavaScript and the Eris library.

Installation

npm install eris-boiler

Talk to us!

The discord chat is the best place to communicate. We encourage using it for:

  • Asking for help
  • Asking if something is a bug
  • Proposing ideas
  • And anything else you can think of

Documentation

Class documentation can be found here

Usage

// index.js
const { join } = require('path')
const { DataClient } = require('eris-boiler')

/* create DataClient instance */
const options = {
  oratorOptions: {
    defaultPrefix: '!!' // sets the default prefix to !!
  },
  statusManagerOptions: {
    defaultStatus: { // sets default discord activity
      type: 0,
      name: 'a game'
    },
    mode: 'random' // sets activity mode to random, the bot will change status on an interval
  }
}

const bot = new DataClient('YourBotToken', options)

bot
  .addCommands(join(__dirname, 'src/commands')) // load commands in src/commands folder
  .addEvents(join(__dirname, 'src/events')) // load events in src/events folder
  .connect()      
// src/commands/echo.js
const { Command } = require('eris-boiler')

module.exports = new Command({
  name: 'echo', // name of command
  description: 'copy that',
  run: async ({ params }) => params.join(' ') // functionality of command
  // list of things in object passed to run: bot (DataClient), msg (Message), params (String[])
})
// src/events/presenceUpdate.js
const { DiscordEvent } = require('eris-boiler')

module.exports = new DiscordEvent({
  name: 'presenceUpdate', // name should match event name
  run: (bot, newMember, oldMember) => console.log('something changed')
  // bot is bound to all events, so bot will be the first parameter in addition to any parameters passed in from Eris
})

That should cover most things anyone starting out should need to know.

Contributing

Before starting work you should hash it out with us over on discord to make sure it is not already being worked on by someone else.

Check out our guidelines here.

Development

  1. Clone this repository
  2. Run npm install
  3. Add your token and other options
  4. Run npm run dev