Async loading of commands and events

This commit is contained in:
Joan Marin 2023-04-02 22:50:10 -04:00
parent a0de902935
commit 634e4a85af
Signed by: joan
GPG key ID: 750B6742D9C69D6E

View file

@ -37,11 +37,13 @@ async function loadCommandFromDir(dir) {
for (const file of commandFiles) {
const filePath = path.join(commandsPath, file);
let command = await import(filePath);
command = command.default;
import(filePath)
.then(importedCommand => {
const command = importedCommand.default;
client.commands.set(command.data.name, command);
console.log(`Successfully loaded command \x1b[32m${command.category}/${command.data.name}\x1b[0m`);
})
.catch(error => console.error(`Failed to load command for path: ${filePath}`, error));
}
}
@ -51,13 +53,16 @@ async function loadEventFromDir(dir, listener) {
for (const file of eventFiles) {
const filePath = path.join(eventsPath, file);
let event = await import(filePath);
event = event.default;
import(filePath)
.then(importedEvent => {
const event = importedEvent.default;
if (event.once) {
listener.once(event.name, (...args) => event.execute(...args, client));
}
else {
listener.on(event.name, (...args) => event.execute(...args, client));
}
})
.catch(error => console.error(`Failed to load event for path: ${filePath}`, error));
}
}