42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
const fs = require("fs");
|
|
const path = require("path");
|
|
const { Collection } = require("discord.js");
|
|
|
|
function walkCommands(dir, callback) {
|
|
const files = fs.readdirSync(dir, { withFileTypes: true });
|
|
|
|
for (const file of files) {
|
|
const filePath = path.join(dir, file.name);
|
|
|
|
if (file.isDirectory()) {
|
|
walkCommands(filePath, callback);
|
|
} else if (file.name.endsWith(".js")) {
|
|
const command = require(filePath);
|
|
callback(command);
|
|
}
|
|
}
|
|
}
|
|
|
|
function loadCommands(client) {
|
|
const commandsPath = path.join(__dirname, "../SlashCommand");
|
|
client.commands = new Collection();
|
|
|
|
walkCommands(commandsPath, (command) => {
|
|
client.commands.set(command.data.name, command);
|
|
});
|
|
|
|
return client.commands;
|
|
}
|
|
|
|
function getCommandsJSON() {
|
|
const commandsPath = path.join(__dirname, "../SlashCommand");
|
|
const commands = [];
|
|
|
|
walkCommands(commandsPath, (command) => {
|
|
commands.push(command.data.toJSON());
|
|
});
|
|
|
|
return commands;
|
|
}
|
|
|
|
module.exports = { loadCommands, getCommandsJSON }; |