README
About
This npm package is a simple way to use a command handler is discord.js. This package allows for the usage of aliases and sub-folders.
Installing the Package
Run the following command in your terminal
npm i penguin-handler
Using The Package
In your index file you may have something like this.
const Discord = require('discord.js')
const client = new Discord.Client()
const token = "Bot Token"
client.on('ready', () =>{
console.log('I am online!')
)
client.on('message', msg =>{
if(msg.content.toLowerCase() == "!ping"){
msg.reply("Pong")
}
})
client.login(token)
Now, as you can see, having a bunch of commands on your index file can get a bit messy, this is where command handlers come into play. On your index file you are going to add the following
const Discord = require('discord.js')
const client = new Discord.Client()
const token = "Bot Token"
const { handle, run } = require('penguin-handler') //Require the package so you can use the handler function
/*
On the next line I will be calling the handler function with one parameter:
The parameter is the path to your commands folder, for example if my commands folder is in the same folder as my index.js I would put "./commands".
*/
client.on('ready', () =>{
handle('./commands') //This line of code will load all commands in the path specified, including all commands that are in subfolders.
console.log('I am online!')
)}
//Now we have to run the commands when they are called this will be done is a message listener.
client.on('message', msg =>{
run('!', client, msg) //The first agument here will be what you want your prefix to be. The second is your client vairable, and the third is your message variable
}
client.login(token)
You can make a new folder and name it whatever (This is where all of your command files will be stored) and in this folder make a new file for each command, in this example i will be showcasing the ping command demonstrated above. Once you have made a new file (In this example my file will be named "ping.js") you are going to set it up exactly how you see it below.
const Discord = require('discord.js')
module.exports.help = {
name: "ping", //Name of the command
aliases: ['p'] // Any Aliases you want for the command (If you don't want any just ignore this.)
}
module.exports.run = async (client, msg, args) => {
//Code for Command (This will be ran once the command is called.)
msg.reply('Pong!')
}