0.0.1 ā¢ Published 1 year ago
discord-handlers v0.0.1
discord-handlers
An easy-to-use package implementing handlers for Discord.js v14 events, commands, and components.
Installation ā¬ļø
Install discord-handlers with npm
npm install discord-handlers
Documentation (w/Example) š
ā¢ Creating the Handler
const Handler = require("discord-handlers");
const handler = new Handler();
ā¢ Folder Structure š
You could use whichever folder structure you'd like, but with this package it's recommended to use the following structure:
Discord Bot/
āāā node_modules
āāā src/
ā āāā commands/
ā ā āāā moderation/
ā ā āāā kick.js
ā āāā components/
ā ā āāā buttons/
ā ā ā āāā ok-button.js
ā ā āāā contextMenus/
ā ā āāā modals/
ā ā āāā selectMenus/
ā āāā events/
ā ā āāā client/
ā ā ā āāā ready.js
ā ā ā āāā interactionCreate.js
ā ā āāā mongo/
ā ā āāā connecting.js
ā ā āāā disconnected.js
ā āāā bot.js
āāā .env
āāā package.json
āāā package-lock.json
ā¢ Handling Discord.js Events (Client Events) š©
/*
* The function takes in the path to the Discord.js events folder.
* It also takes in the Discord client.
*/
handler.handleClientEvents("./src/events/client", client);
ā¢ Handling MongoDB Events (Mongoose) š©
/*
* The function takes in the path to the mongoose events folder.
* It also takes in the Discord client.
*/
handler.handleMongoEvents("./src/events/mongo", client);
ā¢ Handling Components (Buttons, Context Menus, Select Menus, and Modals) š
/*
* The function takes in the path to the components folder.
* It also takes in the Discord client.
*/
(async () => {
await handler
.handleComponents("./src/components", client);
})();
ā¢ Handling Global Commands āØļø
You cannot use both Global commands AND Guild commands. Please select on handler.
/*
* The function takes in the following:
* Path to the commands folder
* The Discord client
* The Discord client's ID
* The Discord client's token.
*/
handler.handleGlobalCommands(
"./src/commands",
client,
"1038379144272158770",
token
);
ā¢ Handling Guild Commands āØļø
You cannot use both Global commands AND Guild commands. Please select on handler.
/*
* The function takes in the following:
* Path to the commands folder
* The Discord client
* The Discord client's ID
* The Discord server's ID the bot will run in
* The Discord client's token.
*/
handler.handleGuildCommands(
"./src/commands",
client,
"1038379144272158770",
"894328880998010930",
token
);
ā¢ Handling Interactions š
Your 'interactionCreate' event should look like the following:
const Handler = require("discord-handlers");
module.exports = {
name: "interactionCreate",
async execute(interaction, client) {
const handler = new Handler();
// Pass in both the interaction and client:
await handler.handleInteraction(interaction, client);
},
};
Demo/Example š
require("dotenv").config(); // Storing bot token with .ENV which is recommended.
const { token } = process.env; // Getting the token from the .env file.
const { Client } = require("discord.js");
const Handler = require("discord-handlers");
const handler = new Handler();
const client = new Client({ intents: 131071 });
// Discord.js Event Handler:
handler.handleClientEvents("./src/events/client", client);
// MongoDB event Handler: (using mongoose)
handler.handleMongoEvents("./src/events/mongo", client);
// Discord.js Components Handler:
(async () => {
await handler
.handleComponents("./src/components", client);
})();
// Discord.js Global Commands Handler: [Select either Gloal or Guild NOT both]
// handler.handleGlobalCommands(
// "./src/commands",
// client,
// "1038379144272158770",
// token
// );
// Discord.js Guild Commands Handler: [Select either Gloal or Guild NOT both]
handler.handleGuildCommands(
"./src/commands",
client,
"1038379144272158770",
"894328880998010930",
token
);
client.login(token);
Support š¬
For support, join my Discord server.