diff --git a/base/newClient.js b/base/newClient.js index 395c7784..28a2cb30 100644 --- a/base/newClient.js +++ b/base/newClient.js @@ -24,7 +24,7 @@ export class ExtendedClient extends Client { } async registerModules() { - await this.registerCommands(this.__dirname); + await Promise.all([this.registerCommands(this.__dirname), this.registerEvents(this.__dirname)]); } async registerCommands(baseDir) { @@ -54,4 +54,18 @@ export class ExtendedClient extends Client { console.log(error); } } + + async registerEvents(baseDir) { + const eventFiles = await glob(`${baseDir}/../newEvents/**/*.js`); + + for (const file of eventFiles) { + const event = await this.importFile(file); + + if (event.data.once) { + this.once(event.data.name, event.run); + } else { + this.on(event.data.name, event.run); + } + } + } } diff --git a/base/newEvent.js b/base/newEvent.js new file mode 100644 index 00000000..4675a7fc --- /dev/null +++ b/base/newEvent.js @@ -0,0 +1,10 @@ +export default class BaseEvent { + /** + * @param {{ name: import("discord.js").ClientEvents, once: boolean}} options + * @param {Function} run + */ + constructor(data, run) { + this.data = data; + this.run = run; + } +} diff --git a/newEvents/ready.js b/newEvents/ready.js new file mode 100644 index 00000000..433cbcb3 --- /dev/null +++ b/newEvents/ready.js @@ -0,0 +1,11 @@ +import Event from "../base/newEvent.js"; + +export default new Event( + { + name: "ready", + once: true, + }, + client => { + console.log(client.user.tag + " is online!"); + }, +);