feat: added event handler

This commit is contained in:
Slincnik 2024-12-06 19:22:38 +03:00
parent 9f82e45a67
commit c77d66ea40
No known key found for this signature in database
3 changed files with 36 additions and 1 deletions

View file

@ -24,7 +24,7 @@ export class ExtendedClient extends Client {
} }
async registerModules() { async registerModules() {
await this.registerCommands(this.__dirname); await Promise.all([this.registerCommands(this.__dirname), this.registerEvents(this.__dirname)]);
} }
async registerCommands(baseDir) { async registerCommands(baseDir) {
@ -54,4 +54,18 @@ export class ExtendedClient extends Client {
console.log(error); 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);
}
}
}
} }

10
base/newEvent.js Normal file
View file

@ -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;
}
}

11
newEvents/ready.js Normal file
View file

@ -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!");
},
);