Async loading of commands and events

This commit is contained in:
Joan Marin 2023-04-02 22:50:10 -04:00 committed by joan
parent 5b2fa020d1
commit fa95596906
Signed by: joan
GPG key ID: 750B6742D9C69D6E

View file

@ -41,11 +41,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));
}
}
@ -55,13 +57,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));
}
}