我正在使用具有大量命令的不和谐机器人工作,因此我想将命令分为不同的类别,例如“ moderationcommands”,“ musiccommands”等。但是,我无法导入多个文件夹命令。我希望从一个名为“ extras”的文件夹中导入命令,但是不确定如何将其添加到我的代码中。这是我的代码从名为“ commands”的文件夹中导入文件的代码
for (const file of commandFiles) {
const command = require(join(__dirname, "commands", `${file}`));
client.commands.set(command.name, command);
}
client.on("message", async (message) => {
if (message.author.bot) return;
if (!message.guild) return;
const prefixRegex = new RegExp(`^(<@!?${client.user.id}>|${escapeRegex(PREFIX)})\\s*`);
if (!prefixRegex.test(message.content)) return;
const [, matchedPrefix] = message.content.match(prefixRegex);
const args = message.content.slice(matchedPrefix.length).trim().split(/ +/);
const commandName = args.shift().toLowerCase();
const command =
client.commands.get(commandName) ||
client.commands.find((cmd) => cmd.aliases && cmd.aliases.includes(commandName));
if (!command) return;
如果有人可以建议从多个文件夹导入命令的方式,我将不胜感激
答案 0 :(得分:0)
这是我使用fs
找到的最好方法:
// get all folders within the command folder
const commandFolders = fs.readdirSync('./commands');
for (const folder of commandFolders) {
// get all files within each command folder
const commandFiles = fs.readdirSync(`./commands/${folder}`);
for (const file of commandFiles) {
const command = require(`./commands/${folder}/${file}`);
client.commands.set(command.name, command);
}
}