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

Discord.js v13 斜杠命令重复出现问题排查求助

问题原因

你遇到的斜杠命令重复问题,本质是同时存在两个作用域的同名斜杠命令:
Discord的斜杠命令分为两个完全独立的注册作用域:

  • 全局斜杠命令:所有添加了机器人的服务器都可见,API更新缓存最长需要1小时
  • 公会专属斜杠命令:仅指定服务器可见,注册后实时更新
    你现在代码里注册的是公会专属的新版命令,而你之前大概率注册过同名的全局旧命令,旧的全局命令还在缓存生效期,所以两个命令同时在该服务器展示,就是你看到的一条新版一条旧版的效果。
    斜杠命令重复预览图
    你贴出的命令注册&权限配置逻辑本身没有语法错误,问题出在额外的全局命令注册/残留。
修复步骤
  1. 清理残留的无效命令
    首先执行一次全局命令清空,把旧的全局命令删掉:
// 请放在client的ready事件回调中执行,确保client.application已加载
await client.application.commands.set([]);

如果需要清空当前公会的所有残留命令,可以额外执行:

const guild = await client.guilds.cache.get("836212492769165363");
await guild.commands.set([]);
  1. 移除多余的全局注册逻辑
    检查你的全量代码,删除所有调用client.application.commands.set()的全局注册逻辑,如果你仅需要在指定公会使用机器人,完全不需要注册全局命令,还能避免1小时的更新延迟。

  2. 优化现有注册逻辑(可选)
    建议给你的注册逻辑加上启动判断,不要每次机器人启动都调用guild.commands.set(),频繁调用该接口会触发Discord API的限流限制:你可以在注册前先拉取当前公会的现有命令,和你要注册的arrayOfSlashCommands对比,内容一致就跳过注册。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:36:11