Discord.js v13斜杠命令权限设置、代码放置位置及命令ID获取方法
问题1:权限设置代码的放置位置
你可以根据使用场景选择对应放置位置:
- 若要配置所有服务器通用的命令默认权限,直接将权限配置代码和命令定义代码放在同一文件,配合
SlashCommandBuilder提供的setDefaultMemberPermissions()方法完成配置即可。 - 若要针对特定服务器配置自定义权限,可选两个放置位置:
- 放在
deploy-commands.js脚本末尾:你向Discord接口发送命令部署请求后,返回的结果会包含已创建的完整命令对象,在拿到返回结果后直接追加权限配置代码,运行一次部署脚本即可完成权限设置。 - 放在机器人的
ready事件回调中:适合部署完成后需要动态调整权限的场景,机器人启动后会自动执行对应权限配置逻辑。
- 放在
问题2:获取斜杠命令ID的常用方法
- 部署时直接打印获取:在
deploy-commands.js的部署逻辑中,拿到接口返回的命令数组后,添加打印代码即可直接输出所有命令的名称与对应ID,示例:console.log(commands.map(cmd => `命令名:${cmd.name} | ID:${cmd.id}`)) - 手动复制:先打开Discord客户端的开发者模式(路径:设置→高级→开发者模式),进入任意服务器输入
/唤起命令列表,右键目标命令即可选择「复制ID」。 - 代码动态拉取:在机器人运行时通过接口拉取全量命令列表遍历获取,示例代码:
// 拉取全局命令列表 const globalCommands = await client.application.commands.fetch() // 拉取指定服务器的命令列表 const guildCommands = await client.guilds.cache.get('服务器ID').commands.fetch()
内容的提问来源于stack exchange,提问作者01101101
相关产品推荐
相关产品推荐

