penguin-handler

Simple Discord.js Command Handler

Usage no npm install needed!

<script type="module">
  import penguinHandler from 'https://cdn.skypack.dev/penguin-handler';
</script>

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!')
}