【问题标题】:How to delete a Discord.js commands (v13)如何删除 Discord.js 命令 (v13)
【发布时间】:2022-02-11 09:36:14
【问题描述】:

我在 google 上到处找,但仍然没有找到删除我不小心创建的命令的方法。所以我有这个命令叫“ping”,我想删除它。这是我用来创建它的代码:

// importing stuff
const DiscordJS = require("discord.js");
const dotenv = require("dotenv");
dotenv.config();

console.log("Starting up");

const client = new DiscordJS.Client({
  intents: [DiscordJS.Intents.FLAGS.GUILDS, DiscordJS.Intents.FLAGS.GUILD_MESSAGES]
});

console.log("Waiting for bot to log in...");

client.on("ready", () => {
  console.log("Bot Login");

  const guild = client.guilds.cache.get("913238101902630983");
  let commands;


  if (guild) {
    commands = guild.commands;
  } else {
    commands = client.application.commands;
  }
 

  commands.create({
    name: "ping",
    description: "Reply with pong"
  });
});

client.login(process.env.token);

所以现在我想删除那个 ping 命令。搜索谷歌后,我遇到了两种方法。

  1. 使用client.api.applications(client.user.id).commands("command-id (interaction.data.id)").delete() 这个解决方案的问题是我不知道如何获取commandId 谷歌搜索仍然没有帮助。 Source

  2. 使用commands.cache.find(c => c.name === 'command name').delete();。这个问题是当我将 ping 命令名称放入commands.cache.find(c => c.name === 'ping').delete(); 时,它给了我这个错误TypeError: Cannot read properties of undefined (reading 'delete')Source

请帮助我,在此先感谢!

【问题讨论】:

  • 您好,也许您可​​以在触发时记录command.id。它会帮助你删除它

标签: discord.js


【解决方案1】:

一个简单的解决方案是简单地清除所有斜杠命令,然后重新创建它们。以下代码将清除所有全局命令。

await client.application.commands.set([]);

要清除特定于公会的命令,请执行以下操作:

const guild = await client.guilds.fetch(/*Guild ID goes here*/);
guild.commands.set([]);

【讨论】:

    猜你喜欢
    • 2021-11-09
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2022-09-30
    • 2017-07-31
    • 2022-01-07
    相关资源
    最近更新 更多