嗨,我正在尝试加载不同文件夹中的文件,例如
-- Main directory
-- bot folder
- index.js
- package.json
- package-lock.json
-- commands
-- fun
- kick.js
- ban.js
-- some other category
但是,在我的代码中,我似乎只能在 Commands 文件夹而不是子文件夹中加载 .js 文件。
这是我正在使用的代码:
const commandFiles = fs.readdirSync("../main/Commands")
.filter(file => file.endsWith(".js"));
const commands = commandFiles.map(file => require(`../Commands/${file}`));
commands.forEach(cmd => {
console.log(`Command ${cmd.name} loaded`);
this.commands.set(cmd.name, cmd);
});
帮助表示赞赏。
您可以创建多个集合,每个子文件夹一个。这是我为我的机器人所做的,它完美地工作:
client.commandsAdmin = new Discord.Collection();
client.commandsUser = new Discord.Collection();
const commandsAdminFiles = fs.readdirSync('./commands/admin').filter(file => file.endsWith('.js'));
const commandsUserFiles = fs.readdirSync('./commands/user').filter(file => file.endsWith('.js'));
for(const file of commandsAdminFiles){
const command = require(`./commands/admin/${file}`);
client.commandsAdmin.set(command.name, command);
}
for(const file of commandsUserFiles){
const command = require(`./commands/user/${file}`);
client.commandsUser.set(command.name, command);
}
在代码中处理命令时,您必须检查它是否属于集合之一,然后获取哪个集合确实包含该命令,然后使用client.commandsFun.get(command).execute(...)
例如命令是否属于“fun”子文件夹。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句