Skip to content

Modular Commands

Arthur Neuman edited this page May 17, 2020 · 3 revisions

Keeping your systems modular

It's standard practice to keep your systems as modular as possible, granting agility in new feature development.

Standard practice is to keep your commands as files in a data folder that is required.

If your command files are put in a folder, you can require the parent folder by placing an index.js in it. The purpose of this file is to require all the command files and compile them into an array the agent can take.

The index file:

const commands = []
const files = readdirSync(__dirname)

for (const file of files) if (file !== 'index.js') commands.push(require(join(__dirname, file)))

module.exports = commands

A command file:

const {
  Command
} = require('cyclone-engine')

const data = {
  name: 'ping',
  desc: 'Check if the bot is responding to commands'
  action: () => 'pong'
}

module.exports = new Command(data)

Now you can require the folder containing the commands and receive an array containing the commands.

This system speeds up development and makes your project aesthetically nicer

![Filesystem example](https://raw.githubusercontent.com/mets11rap/cyclone-engine/master/assets/Wiki Filesystem Example.png)

Components


tui.jsdoc-template (Fork)

Clone this wiki locally