UNPKG

kakashi-self-handler

Version:
49 lines (40 loc) 1.35 kB
const { readdirSync, existsSync } = require("fs"); const { blue, red } = require("chalk"); const path = require("path"); function handleEvents(folderPath, client) { if (!existsSync(folderPath)) { throw new Error( red( `{Kakashi Event Handler} - Path provided doesn't exist.\n'${folderPath}'` ) ); } const directories = readdirSync(folderPath).filter((dir) => existsSync(path.join(folderPath, dir)) && !dir.includes(".") ); for (const dir of directories) { const eventFiles = readdirSync(path.join(folderPath, dir)).filter((file) => file.endsWith(".js") ); for (const file of eventFiles) { const eventPath = path.resolve(path.join(folderPath, dir, file)); const event = require(eventPath); if (!event || !event.name) { throw new Error( red( `{Kakashi Event Handler} - Event is missing data.\n'${eventPath}'` ) ); } if (event.once) { client.once(event.name, (...args) => event.execute(...args, client)); } else { client.on(event.name, (...args) => event.execute(...args, client)); } console.log( blue(`{Kakashi Event Handler} - Registered event as "${event.name}"`) ); } } } module.exports = handleEvents;