删除 Discord.js v13 不存在的斜杠命令
Delete Discord.js v13 slash command that doesnt exist
最近,我开始研究 discord 机器人并添加了斜杠命令。
我注意到我有一个 ping(用 pong 回复)命令,不是我创建的,就是我创建的,但我无法摆脱它。
这是我的interactionHandler.js
const { REST } = require("@discordjs/rest");
const { Routes } = require("discord-api-types/v9");
module.exports = async (err, files, client) => {
if (err) return console.error(err);
client.interactionsArray = [];
files.forEach((file) => {
const interaction = require(`./../interactions/${file}`);
client.interactions.set(interaction.data.name, interaction);
client.interactionsArray.push(interaction.data.toJSON());
});
const rest = new REST({ version: "9" }).setToken(process.env.DISCORD_TOKEN);
(async () => {
try {
// console.log("Refreshing slash command list");
// const guildIds = await client.guilds.cache.map((guild) => guild.id);
// const clientId = await client.user.id;
// guildIds.forEach(async (guildId) => {
// await rest.put(Routes.applicationGuildCommands(clientId, guildId), {
// body: client.interactionsArray,
// });
// });
await rest.put(
Routes.applicationGuildCommands("934895917453168653", "967384688069066852"),
{ body: client.interactionsArray},
);
console.log("Successfully refreshed slash command list");
} catch (error) {
console.error(error);
}
})();
};
有没有办法删除命令,因为我找不到办法。
我正在考虑获取命令的 ID,但我不知道如何获取。
感谢所有的帮手:)
Discord.jsv13
这些命令可能不会刷新,原因有两个:
- 这些命令可能是全局命令,将其更改为刷新全局(而不是公会)命令将
Routes.applicationGuildCommands
替换为Routes.applicationCommands
- 这些命令可能来自不同的公会,在这种情况下您应该更改公会 ID
要找出问题,您应该 client.application.commands.fetch()
获取所有命令,然后 console.log()
结果。
例子
//This will fetch all your slash commands
const commands = await client.application.commands.fetch();
//Returns a collection of application commands
console.log(commands);
最近,我开始研究 discord 机器人并添加了斜杠命令。
我注意到我有一个 ping(用 pong 回复)命令,不是我创建的,就是我创建的,但我无法摆脱它。这是我的interactionHandler.js
const { REST } = require("@discordjs/rest");
const { Routes } = require("discord-api-types/v9");
module.exports = async (err, files, client) => {
if (err) return console.error(err);
client.interactionsArray = [];
files.forEach((file) => {
const interaction = require(`./../interactions/${file}`);
client.interactions.set(interaction.data.name, interaction);
client.interactionsArray.push(interaction.data.toJSON());
});
const rest = new REST({ version: "9" }).setToken(process.env.DISCORD_TOKEN);
(async () => {
try {
// console.log("Refreshing slash command list");
// const guildIds = await client.guilds.cache.map((guild) => guild.id);
// const clientId = await client.user.id;
// guildIds.forEach(async (guildId) => {
// await rest.put(Routes.applicationGuildCommands(clientId, guildId), {
// body: client.interactionsArray,
// });
// });
await rest.put(
Routes.applicationGuildCommands("934895917453168653", "967384688069066852"),
{ body: client.interactionsArray},
);
console.log("Successfully refreshed slash command list");
} catch (error) {
console.error(error);
}
})();
};
有没有办法删除命令,因为我找不到办法。 我正在考虑获取命令的 ID,但我不知道如何获取。 感谢所有的帮手:) Discord.jsv13
这些命令可能不会刷新,原因有两个:
- 这些命令可能是全局命令,将其更改为刷新全局(而不是公会)命令将
Routes.applicationGuildCommands
替换为Routes.applicationCommands
- 这些命令可能来自不同的公会,在这种情况下您应该更改公会 ID
要找出问题,您应该 client.application.commands.fetch()
获取所有命令,然后 console.log()
结果。
例子
//This will fetch all your slash commands
const commands = await client.application.commands.fetch();
//Returns a collection of application commands
console.log(commands);