kakashi-self-handler
Version:
package handler for discord bot
49 lines (40 loc) • 1.35 kB
JavaScript
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;