56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
import { REST, Routes } from "discord.js";
|
|
import fs from "fs";
|
|
import path from "path";
|
|
import { fileURLToPath } from "url";
|
|
import { config } from "./src/config.js";
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
const commands = [];
|
|
const foldersPath = path.join(__dirname, "src/commands");
|
|
const commandFolders = fs.readdirSync(foldersPath);
|
|
|
|
for (const folder of commandFolders) {
|
|
if (folder.indexOf("[disabled]") === -1 || config.environnement === "test") {
|
|
const commandsPath = path.join(foldersPath, folder);
|
|
const commandFiles = fs
|
|
.readdirSync(commandsPath)
|
|
.filter((file) => file.endsWith(".js"));
|
|
for (const file of commandFiles) {
|
|
const filePath = path.join(commandsPath, file);
|
|
const commandFile = await import(filePath);
|
|
if ("data" in commandFile.command && "execute" in commandFile.command) {
|
|
commands.push(commandFile.command.data.toJSON());
|
|
} else {
|
|
console.log(
|
|
`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
const rest = new REST().setToken(config.token);
|
|
|
|
(async () => {
|
|
try {
|
|
console.log(
|
|
`Started refreshing ${commands.length} application (/) commands.`
|
|
);
|
|
|
|
const data = await rest.put(
|
|
Routes.applicationGuildCommands(
|
|
config.applicationId,
|
|
config.discordGuildId
|
|
),
|
|
{ body: commands }
|
|
);
|
|
|
|
console.log(
|
|
`Successfully reloaded ${data.length} application (/) commands.`
|
|
);
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
})();
|