tengo un problema, mi controlador de comandos solo reconoce la carpeta superior dentro de mi directorio de comandos. Se supone que debe mostrar todas las carpetas disponibles en el directorio de comandos, pero solo mostró la categoría de "prueba", que es la primera. cualquier ayuda sería realmente apreciada.
Construcción de carpetas/directorios:
salida de consola.log:
Código del controlador de comandos:
const {readdirSync} = require('fs'); const ascii = require('ascii-table'); let table = new ascii("Commands"); table.setHeading('Category', 'Command', ' Load status'); var logged = false; const path = require('node:path') module.exports = (client) => { readdirSync('./Commands/').forEach(dir => { var commands = readdirSync(`./Commands/${dir}/`).filter(file => file.endsWith('.js')); for(let file of commands){ let pull = require(`../Commands/${dir}/${file}`); if(pull.name){ client.commands.set(pull.name, pull); table.addRow(dir,file,'✔️ -> Command Loaded') } else { table.addRow(dir,file,'❌ -> Command Error') continue; } if(pull.aliases && Array.isArray(pull.aliases)) pull.aliases.forEach(alias => client.aliases.set(alias, pull.name)) } if(!logged) { console.log(table.toString()) console.log(`[Command] Command Handler is Ready! | Total Commands: ${commands.length}`) logged = true } }); }Creo que está sobrescribiendo la variable de comandos después de que cada carpeta haya sido recorrida. Prueba esto:
const {readdirSync} = require('fs'); const ascii = require('ascii-table'); let table = new ascii("Commands"); table.setHeading('Category', 'Command', ' Load status'); var logged = false; const path = require('node:path') module.exports = (client) => { readdirSync('./Commands/').forEach(dir => { var commands = [] commands.push(readdirSync(`./Commands/${dir}/`).filter(file => file.endsWith('.js'))); for(let file of commands){ let pull = require(`../Commands/${dir}/${file}`); if(pull.name){ client.commands.set(pull.name, pull); table.addRow(dir,file,'✔️ -> Command Loaded') } else { table.addRow(dir,file,'❌ -> Command Error') continue; } if(pull.aliases && Array.isArray(pull.aliases)) pull.aliases.forEach(alias => client.aliases.set(alias, pull.name)) } if(!logged) { console.log(table.toString()) console.log(`[Command] Command Handler is Ready! | Total Commands: ${commands.length}`) logged = true } }); }Si esto no ayuda, es posible que siga siendo el problema al que me referí anteriormente, pero es posible que las ediciones que hice no sean compatibles con su código.