You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js 如何删除指定的服务器/全局斜杠命令?

Discord.js删除斜杠命令操作指南

先解决Command ID的获取问题

你不需要手动拼接或者猜测命令ID,直接通过API拉取已注册的命令列表就能拿到对应ID:

// 以下代码均需要在客户端触发ready事件后执行
// 1. 获取全局命令ID列表
const globalCommands = await client.application.commands.fetch();
// 输出格式:[ {id: 'xxx', name: '命令名'}, ... ] 找到你要删除的命令对应id即可
console.log('全局命令列表:', globalCommands.map(cmd => ({id: cmd.id, name: cmd.name})));

// 2. 获取指定服务器的命令ID列表
const targetGuildId = '替换为目标服务器ID';
const guildCommands = await client.guilds.cache.get(targetGuildId).commands.fetch();
console.log('指定服务器命令列表:', guildCommands.map(cmd => ({id: cmd.id, name: cmd.name})));

删除指定全局斜杠命令

const toDeleteGlobalCmdId = '替换为你要删除的全局命令ID';
// 删除单个全局命令
await client.application.commands.delete(toDeleteGlobalCmdId);

// 如果要清空所有全局命令,使用批量设置空数组的方法
await client.application.commands.set([]);

删除指定服务器斜杠命令

const targetGuildId = '替换为目标服务器ID';
const toDeleteGuildCmdId = '替换为你要删除的服务器命令ID';
// 删除单个服务器命令
await client.guilds.cache.get(targetGuildId).commands.delete(toDeleteGuildCmdId);

// 如果要清空该服务器下所有斜杠命令,使用批量设置空数组的方法
await client.guilds.cache.get(targetGuildId).commands.set([]);

注意事项

  • 全局命令有最长1小时的Discord缓存延迟,删除操作提交后不会立刻在所有用户端生效,服务器级命令删除是即时生效的
  • 操作前建议先拉取命令列表做备份,避免误删需要重新注册
  • 机器人必须拥有applications.commands权限,且对应Token具备目标服务器的命令操作权限

内容的提问来源于stack exchange,提问作者loldonut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:15:03