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

discord.js v14中dmPermission属性不生效问题求助

解决Discord机器人命令仍在私信中显示的问题

以下是几个排查和解决的方向:

  • 等待全局命令缓存更新:如果推送的是全局斜杠命令,Discord服务器的缓存更新需要约1小时,这段时间旧的命令配置还会生效。要是想快速测试,可以先把命令绑定到单个服务器(guild命令),这类命令几乎实时生效。
  • 清理残留的旧命令:如果之前推送过不带dmPermission: false的命令,新命令可能只是追加而非覆盖。可以先通过代码删除所有旧命令,再重新推送配置后的版本。比如用这段代码批量删除全局命令:
// discord.js v14+ 示例
const commands = await client.application.commands.fetch();
commands.forEach(cmd => cmd.delete());
  • 确认配置位置正确:检查dmPermission: false是否放在命令对象的顶层(就像你示例里的写法),别嵌套在options或其他属性里,位置错误会导致配置不生效。
  • 检查推送逻辑:确保推送命令时用的是覆盖式更新,比如用client.application.commands.set(commandsArray),而非逐个调用create(),避免新旧命令共存。

另外,推送新命令后,可以退出Discord客户端重新登录,或者刷新服务器列表,确保本地缓存也同步更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:54:26