Files
discordeno/examples/nodejs/Managers/EventManager.js
2023-04-01 02:46:46 +02:00

33 lines
830 B
JavaScript

const fs = require('fs')
const path = require('path')
const resolveFolder = (folderName) => path.resolve(__dirname, '.', folderName)
const EventEmitter = require('events')
class EventManager extends EventEmitter {
constructor() {
super()
this.cache = new Map()
this.allEvents = {}
}
load(options = {}) {
const eventsFolder = resolveFolder('../events')
let i = 0
fs.readdirSync(eventsFolder).map(async (file) => {
if (!file.endsWith('.js')) return
i++
const fileName = path.join(eventsFolder, file)
const event = require(fileName)
const eventName = file.split('.')[0]
this.allEvents[`${eventName}`] = (...args) => {
this.emit(eventName, ...args)
return event(...args)
}
})
return this.allEvents
}
}
module.exports = EventManager