UNPKG

@nortex/handler

Version:

The easy to use, all-in-one command and event handler.

39 lines (38 loc) 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const EventHandler_1 = require("../handlers/EventHandler"); const CommandHandler_1 = require("../handlers/CommandHandler"); const ComponentHandler_1 = require("../handlers/ComponentHandler"); class Util { constructor(client) { this.client = client; } static createMany(client, options) { if (!client || !options) throw new Error("createMany(): Invalid client or directories."); let handlers = { commandHandler: undefined, eventHandler: undefined, componentHandler: undefined, }; for (let [key, value] of Object.entries(options)) { if (key === "events") handlers.eventHandler = new EventHandler_1.EventHandler({ client, ...value }); else if (key === "commands") handlers.commandHandler = new CommandHandler_1.CommandHandler({ client, ...value }); else if (key === "components") handlers.componentHandler = new ComponentHandler_1.ComponentHandler({ client, ...value }); else throw new Error(`createMany(): Invalid key '${key}' inside 'options'. Valid keys are 'commands', 'events' and 'components'.`); } return handlers; } static createMessageLink(guildId, channelId, messageId) { if (!guildId || !channelId) throw new TypeError("createMessageLink(): missing required properties: 'guildId', 'channelId'."); if (messageId) return `https://discord.com/channels/${guildId}/${channelId}/${messageId}`; return `https://discord.com/channels/${guildId}/${channelId}`; } } exports.default = Util;