如何包括多个命令文件

时间:2020-09-16 17:32:44

标签: discord discord.js

我正在使用具有大量命令的不和谐机器人工作,因此我想将命令分为不同的类别,例如“ 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;

如果有人可以建议从多个文件夹导入命令的方式,我将不胜感激

1 个答案:

答案 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);
 }
}