1.1.1 • Published 5 years ago

djs-simplecmd v1.1.1

Weekly downloads
6
License
MIT
Repository
github
Last release
5 years ago

djs-simplecmd

A simple command parser for discord.js
This module has no dependencies as this library is based off of discord.js.

NPM

Usage

First, install the library in the project you want to use this with using:

npm install djs-simplecmd

Then, to use this library, first create a CommandParser object (I recommend using one for each guild with the same commands for support for custom commands and custom prefix)
Then, on your message event, call CommandParser.parse with the message like this:

const Discord = require("discord.js")
const commandparse = require("djs-simplecmd")
const bot = new Discord.Client()
bot.on("ready", (message) => {
  console.log("Bot is ready!")
})
bot.on("message", (message) => {
  if (!message.guild.parser) {
    message.guild.parser = new commandparse.CommandParser({prefix: "&", commands: require("./commands.js")}) // We will get into how to create commands later
  }
  message.guild.parser.parse(message)
  // Insert additional code here
})
bot.login("[insert your token here]")

Or you can use commandParse.attach to automatically attach the command parser with the same options, and also you can access it after attachment via message.guild.parser!

const Discord = require("discord.js")
const commandparse = require("djs-simplecmd")
const bot = new Discord.Client()
bot.on("ready", (message) => {
  console.log("Bot is ready!")
})
commandparse.attach(bot, {prefix: "&", commands: require("./commands.js")})
bot.login("[insert your token here]")

And you're set! Now, to create commands, you can add commands individually by using the CommandParser.addCommand method or by specifying the commands option in the object like this example. In this case, we'll use a file called commands.js to specity the commands.
Now, inside of commands.js, we have to define the commands. This is a Hello World example.

const commands = [
  {
    "name": "test",
    "description": "Just a test command.",
    "defaultResponse": "Hello World"
  }
]
module.exports = commands

Put this inside commands.js in the same directory as the first script. (make sure you have discord.js and this lib installed)
Run the code and type &test. It should reply with "Hello World"

Command Image

Voila! You just made a simple bot! There's more to it, of course!

Documentation

Module Methods:

  • attach(bot, options): Attaches the parser to a discord.js Client Object.
    Arguments:
    • bot: (Client) The discord.js Client to attach to.
    • options: (Object) The options
      Valid options:
      • prefix: (String) The prefix to use for the parser (required)
      • commands: (Array) An array of commands to use

CommandParser class:

Options:

  • prefix: (String) The prefix to use for the parser (required)
  • commands: (Array) An array of commands to use

Methods:

  • parse(message): Parses a message for commands
    Arguments:
    • message: (Message) The discord.js Message object to parse for commands
  • addCommand(command): Adds a command to the command list
    Arguments:
    • command: (Object) The Command object to add as a command
  • setPrefix(prefix): Sets the prefix
    Arguments:
    • prefix: (String) The prefix to change to

Command object:

A command object is a regular object.
Properties:

  • name: (String) The name of the command to use (required)
  • description: (String) The description of the command
  • defaultResponse: (String) The default response to use if there is no function (required if function is not present)
  • function (Function) The function to invoke when executing the command (required if defaultResponse is not present) This function will be passed 2 arguments which is message and args.

    • message: (Message) The discord.js message object that was passed.
    • args: (Array) An array of arguments passed.

    The function must return an object with either one or both of these properties if noReturn is false:

    • text: (String) The text to send.
    • embed: (RichEmbed) The discord.js RichEmbed object to send.
  • noStrictArgumentRule: (Boolean) True if the command can accept a undefined number of arguments but 0.

  • noArgumentRule: (Boolean) True if the command can accept any amount of arguments including 0.
  • noReturn: (Boolean) True if the command won't return anything and will send the response itself. Useful if you use any function that is promise-based.
  • cooldown: (Number) The amount of milliseconds the user has to wait before invoking a command again.

Todos

  1. Add an auto argument parser system to parse a list of arguments to an object
  2. Add a way to pass custom data on the parser to the commands themselves

If you have any issues regarding the library, you can file an issue report on GitHub!

1.1.1

5 years ago

1.1.0

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago