node-handlers

0.6.2 • Public • Published

Node Handlers

About

Node Handlers is a Node.js module that allows you to easily use Handlers in node.js!

At the moment there are only handlers for Discord Bots, more will follow.

Installation

Node.js 16.6.0 or newer is required.

npm install node-handlers

Example usage

Install all required dependencies:

npm install node-handlers

How to use the Discord Handlers:

Example Directory Structure

This is an example structure for the example below

The files named in the example structure are under the example structure
📦 path/to/directory
 ┣📂 commands
 ┃ ┣📂 help
 ┃ ┃ ┗📜 ping.js
 ┃ ┗📜 pong.js
 ┣📂 events
 ┃ ┣📂 interactions
 ┃ ┃ ┗📜 interactionCreate.js
 ┃ ┗📜 ready.js
 ┗📜 index.js

Commands can either be placed directly in a folder (e.g. commands) or in a subfolder (e.g. commands/help) in the folder. It's the same for the events: They can either be placed directly in a folder (e.g. events) or in a subfolder (e.g. events/interactions) in the folder.

Command Template

// Command Template 'pong.js'
const Discord = require('discord.js');
module.exports = {
    name: "pong",
    description: "Replies with Pong",
    type: 1, // 1 = Command, 2 = User, 3 = Message
    async execute(interaction){
            
            const Pinging = new Discord.MessageEmbed()
            Pinging.setTitle("> __**PONG!**__")

            interaction.reply({embeds: [ Pinging ]});
    }
}

Event Template

// Event Template (Runs when the bot is logged in, 'ready.js')
module.exports = {
	name: 'ready',
	once: true,
	execute(client) {
		console.log(`Ready! Logged in as ${client.user.tag}`);
	},
};
// Event Template (Is needed to interact with slash commands, 'InteractionCreate.js')
module.exports = {
	name: 'interactionCreate',
	once: false,
	async execute(interaction, client) {
		if (interaction.isCommand()) {
            
            const command = client.slashcmds.find(cmd => {
                return cmd.name === interaction.commandName
              })
    
            if (!command) return;
    
            try {
                await command.execute(interaction);
            } catch (error) {
                console.error(error);
                await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
            }
        }
	},
};

Afterwards we can create a quite simple example bot with the Event and Command Handler:

// This is the 'index.js' from the example structure
const { Discord, Client, Intents} = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MEMBERS]});
const handlers = require('node-handlers');

handlers.dc.events(__dirname + 'PATH TO EVENT FOLDER', client) // e.g. './events'
handlers.dc.commands(__dirname + 'PATH TO COMMAND FOLDER', client) // e.g. './commands'

client.login('YOUR_TOKEN') // Copy from your Application on https://discord.com/developers/applications/<ID>/bot

Links

Contributing

Before creating an issue, please ensure that it hasn't already been reported, and check the documentation.

Readme

Keywords

Package Sidebar

Install

npm i node-handlers

Weekly Downloads

1

Version

0.6.2

License

MIT

Unpacked Size

16.8 kB

Total Files

7

Last publish

Collaborators

  • ole-is-live