gpt4 book ai didi

javascript - 多文件夹命令处理程序

转载 作者:行者123 更新时间:2023-12-04 07:39:43 28 4
gpt4 key购买 nike

我正在尝试使我的命令处理程序允许在文件夹中包含文件。例如,我有一个名为 ./commands/moderation 的文件夹,或者一个名为 ./commands/fun 的文件夹,等等。我该怎么做?

我的代码看起来像这样,但它只处理我的 ./commands 文件夹中的 JavaScript 文件。

for (const file of commandFiles) {
const command = require(`./commands/${file}`)
client.commands.set(command.name, command)
}

// ...

if (!client.commands.has(command)) return;
try {
client.commands.get(command).execute(message, args);
}
// ...

最佳答案

目前,您的 commandFiles 仅包含您的 ./commands 文件夹中的文件。要创建如下所示的文件夹结构,您还需要阅读 ./commands 中文件夹的内容。

- commands
- fun
- game-1.js
- game-2.js
- moderation
- kick.js
- snipe.js

因此,首先,您使用 readdirSync 读取 commands 文件夹的内容对于每个返回的文件夹,您还需要获取扩展名为 js 的文件。查看下面的代码:

const client = new Discord.Client();
client.commands = new Discord.Collection();

const commandFolders = fs.readdirSync('./commands');

for (const folder of commandFolders) {
const commandFiles = fs
.readdirSync(`./commands/${folder}`)
.filter((file) => file.endsWith('.js'));

for (const file of commandFiles) {
const command = require(`./commands/${folder}/${file}`);
client.commands.set(command.name, command);
}
}
// ...

关于javascript - 多文件夹命令处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67547241/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com