This repository has been archived on 2025-11-10. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
CommandBot/README.md
T
2021-06-23 20:38:56 +02:00

5.1 KiB

DiscordCommands

1.0.0

Discord.js wrapper that helps you build your own Discord bot.

Key features

  • command system
  • auto-generated help command
  • command permissions

Table of contents

Getting started

Installation

  1. Install this package using npm
npm install discordcommands@latest
  1. Add the following entry to your package.json file
"type": "module"
  1. Import the package
import { Bot, Command } from 'discordcommands';

Creating bot instance

const bot = new Bot({
    name: "Command bot", // Name of your bot
    prefix: "!", // Prefix used to call commands
    argumentSeparator: "," // Used to get arguments from message
    helpCommand: true, // Enable or disable the *help* command (optional)
    clientOptions: undefined, // Instance of ClientOptions from Discord.js
    token: "" // Bot token from Discord Developer Portal (optional, you can pass the token in *start* method)
});

Start your bot using

bot.start();

Optional arguments for this method

  • port - number - if specified, the app will create a http server that will be listening on the specified port
  • token - string - app token from Discord Developer Portal

Commands

[IMPORTANT] All commands have to be declared above the start method

All parameters

  • name - string - command name (used to trigger the command)
  • function - Function - function that will trigger when the commands gets called
  • visible - boolean - show command in the help message (optional, defaults to true)
  • description - string - command description shown in the help message (optional)
  • usage - string - command usage description shown in the help message (optional)
  • permissions - PermissionResolvable - permissions needed to run the command (optional)
  • aliases - string | string[] - other words that can trigger the command with prefix (optional)
  • keywords - string | string[] - other words that can trigger the command without prefix (optional)

Command function

Arguments

  • m - Message - a message object instance containing message content, author and additional informations
  • a - string[] - list of arguments passed with the message (splitted with argumentSeparator)

Return

If command function returns

  • string - the returned text will be sent as a reply to the command caller
  • MessageEmbed - the embedded content will be sent as a standalone message

Errors

If your command throws an error, it will get logged to the console and sent to the user in a message with embedded content. The bot will not crash. (Example)

Command examples

Simple reply

  1. Create a command
//CREATE COMMAND
const command = new Command({
    name: "ping",
    function: (m, a) => {
        return 'pong';
    }
});
//APPEND IT TO THE COMMANDS LIST
bot.commands.add(command);

or

bot.commands.add(new Command({
    name: "ping",
    function: (m, a) => {
        return 'pong';
    }
}));
  1. Call it from Discord text channel (example prefix: "!")
!ping 

Result:
@mention, pong

Arguments example

  1. Create a command
const command = new Command({
    name: "repeat",
    function: async (m, a) => {
        if(a[0] && a[1]) {
            const count = parseInt(a[1]);
            if(!isNaN(count)) {
                for(let i = 0; i < count; i++) {
                    await m.channel.send(a[0]);
                }
                return `Repeated "${a[0]}" ${count} times`;
            }
            else {
                throw new Error('Number of messages is incorrect');
            }
        }
    }
});

or

bot.commands.add(new Command({
    name: "repeat",
    function: async (m, a) => {
        if(a[0] && a[1]) {
            const count = parseInt(a[1]);
            if(!isNaN(count)) {
                for(let i = 0; i < count; i++) {
                    await m.channel.send(a[0]);
                }
                return `Repeated "${a[0]}" ${count} times`;
            }
            else {
                throw new Error('Number of messages is incorrect');
            }
        }
    }
}));
  1. Call it from Discord text channel (example prefix: "!", example separator: "," [default])
!repeat test, 5

Result:
test
test
test
test
test
@caller, Repeated "test" 5 times