0.0.1 ā€¢ Published 1 year ago

discord-handlers v0.0.1

Weekly downloads
-
License
GPL-3.0-or-later
Repository
github
Last release
1 year ago

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.

Authors šŸ–Š

0.0.1

1 year ago

1.3.3

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago