Как мне сделать что б у меня в папке читались под папки, а то у меня не грузятся команды а если он просто в папке cmds тогда грузятся. discord js
if(err) console.log(err);
let jsfiles = files.filter(f => f.split(".").pop() === "js");
if(jsfiles.length <=0) console.log("Нет комманд для загрузки!!!");
console.log(`Загружено ${jsfiles.length} комманд`);
jsfiles.forEach((f,i) => {
let props = require(`./cmds/${f}`);
console.log(`${i+1}.${f} Загружен`);
client.commands.set(props.help.name,props);
})
});
Ответы (1 шт):
Автор решения: Артём
→ Ссылка
Чтобы реализовать данный метод, вам необходимо создать самовызывающую функцию.
const Discord = require('discord.js');
const fs = require('fs');
const client = new Discord.Client(/* INTENTS */);
client.commands = new Discord.Collection();
function LoadCommands(directory = "./commands") {
fs.readdir(directory, (error, files) => {
if (error) return console.error(error);
const JSFiles = files.filter(file => file.split('.').pop() === 'js');
const DIRs = files.filter(file => fs.lstatSync(`${directory}/${file}`).isDirectory()); // <- Получаем все папки.
JSFiles.forEach(file => {
let props = require(`${directory}/${file}`);
client.commands.set(props.help.name, props);
});
DIRs.forEach(dir => { // <- Пробегаемся по каждой папке.
LoadCommands(`${directory}/${dir}`); // <- Проверяем вложенные папки.
});
});
};
LoadCommands();
