Archived
5.0 KiB
5.0 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
- Install this package using npm
npm install discordcommands@latest
- Add the following entry to your package.json file
"type": "module"
- 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 (separated 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.
:::image type="content" source="assets/error_example.png" alt-text="Error message example":::
Command examples
Simple reply
- 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';
}
}));
- Call it from Discord text channel (example prefix: "!")
!ping // replies "pong" with the user mention
Arguments example
- 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');
}
}
}
}));
- 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