UNPKG

discord.handler.ts

Version:

a simple discord handler

47 lines (44 loc) 1.8 kB
var fs = require("fs") var { Collection } = require("discord.js") class CommandsBuilder { client: any; eventsFolder: any; commandsFolder: any; constructor({ client, eventsFolder, commandsFolder }) { this.client = client; this.eventsFolder = eventsFolder; this.commandsFolder = commandsFolder; } async loadCommands() { if (this.eventsFolder && this.commandsFolder) { const commandsFolder = await fs.readdirSync(this.commandsFolder); const eventsFolder = await fs.readdirSync(this.eventsFolder); if (!commandsFolder || !eventsFolder) throw new Error("Invalid Folder"); for (let folder of fs.readdirSync(this.commandsFolder)) { for (let file of fs.readdirSync(`${this.commandsFolder}/${folder}`).filter((file: string) => file.endsWith(".js"))) { const command = require(`${this.commandsFolder}/${folder}/${file}`); if (command.name) { this.client.commands.set(command.name, command); } } } } } async loadEvents() { if (this.eventsFolder && this.commandsFolder) { const commandsFolder = await fs.readdirSync(this.commandsFolder); const eventsFolder = await fs.readdirSync(this.eventsFolder); if (!eventsFolder) throw new Error("Invalid Folder"); for (let folder of fs.readdirSync(`${this.eventsFolder}`)) { for (let file of folder) { const event = require(`${this.eventsFolder}/${folder}/${file}`); if (event.once) this.client.once(event.name, (...args: any) => event.execute(...args, this.client)); if (!event.once) this.client.on(event.name, (...args: any) => event.execute(...args, this.client)); } } } } } module.exports = { CommandsBuilder };