-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy_commands_dev.js
More file actions
50 lines (40 loc) · 1.36 KB
/
deploy_commands_dev.js
File metadata and controls
50 lines (40 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// single server load
import { REST, Routes } from "discord.js";
import JSONConfig from "./config.json" with { type: "json" };
import fs from "node:fs";
import path from "node:path";
import { fileURLToPath, pathToFileURL } from "node:url";
// Recreate __dirname
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const commands = [];
// Load command files
const commandsPath = path.join(__dirname, "commands");
const commandFiles = fs
.readdirSync(commandsPath)
.filter((file) => file.endsWith(".js"));
for (const file of commandFiles) {
const filePath = pathToFileURL(path.join(commandsPath, file)).href;
const command = await import(filePath);
if ("data" in command && typeof command.data.toJSON === "function") {
commands.push(command.data.toJSON());
} else {
console.warn(
`[WARNING] The command at ${file} is missing a "data" property or toJSON method.`,
);
}
}
// Register commands with Discord
const rest = new REST({ version: "10" }).setToken(JSONConfig.discordToken);
try {
console.log(
`Started refreshing ${commands.length} application (/) commands.`,
);
const data = await rest.put(
Routes.applicationGuildCommands(JSONConfig.clientId, JSONConfig.guildId),
{ body: commands },
);
console.log(`Successfully reloaded ${data.length} application (/) commands.`);
} catch (error) {
console.error(error);
}