-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathundeploy.js
37 lines (29 loc) · 1.14 KB
/
undeploy.js
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
const fs = require("node:fs");
const { REST, Routes } = require("discord.js");
require("dotenv").config();
const commands = [];
const commandFiles = fs.readdirSync("./commands").filter((file) => file.endsWith(".js"));
const clientId = process.env.CLIENTID;
const guildId = process.env.GUILDID;
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
commands.push(command.data.toJSON());
}
const rest = new REST().setToken(process.env.DISCORD);
// This will only remove guild commands, since guild commands can create duplicated commands in the specified guild.
(async () => {
try {
console.log("Started removing guild application (/) commands.");
await rest.get(Routes.applicationGuildCommands(clientId, guildId)).then((data) => {
const promises = [];
for (const command of data) {
const deleteUrl = `${Routes.applicationGuildCommands(clientId, guildId)}/${command.id}`;
promises.push(rest.delete(deleteUrl));
}
return Promise.all(promises);
});
console.log("Successfully removed guild application (/) commands.");
} catch (error) {
console.error(error);
}
})();