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

如何设置Discord私有斜杠命令仅本人可见并可使用?

如何让Discord斜杠命令仅本人可见且可用

你设置default_member_permissions: 0只能限制普通用户执行命令,但无法隐藏命令。要实现仅自己可见且可用,需要结合默认权限限制+用户权限覆盖,具体操作如下:

核心思路

  1. 将命令的默认成员权限设为0,让所有用户默认无访问权限;
  2. 单独给你自己的Discord用户ID添加允许访问的权限覆盖,确保只有你能看到并使用该命令。

具体实现步骤

1. 修改命令基础配置

保留命令代码中的default_member_permissions: 0(字符串或数值形式均可,部分discord.js版本建议用字符串'0'):

const Discord = require("discord.js");

module.exports = {
  name: "ping",
  description: "nada",
  type: Discord.ApplicationCommandType.ChatInput,
  default_member_permissions: 0, // 全局默认无权限
  run: async (client, interaction) => {
    interaction.reply({ content: `Pong ${Math.round(client.ws.ping)}` })
  }
}

2. 添加针对你ID的权限覆盖

注册命令后,通过discord.js的API给你的用户ID单独开放权限,可选择两种方式实现:

方式一:在机器人ready事件中设置

client.on('ready', async () => {
  // 获取已注册的ping命令(替换成你的命令ID,或通过名称查找)
  const pingCommand = await client.application.commands.fetch('你的ping命令ID');
  
  if (pingCommand) {
    await pingCommand.permissions.add({
      permissions: [
        {
          id: '你的Discord用户ID', // 替换为你自己的用户ID
          type: 'User', // 指定权限对象为用户
          permission: true, // 允许访问
        },
      ],
    });
    console.log('ping命令权限已设置为仅本人可见');
  }
});

方式二:在部署脚本中设置(推荐)

如果用脚本批量部署命令,可在注册后直接设置权限:

const { REST, Routes } = require('discord.js');
const commands = [
  {
    name: 'ping',
    description: 'nada',
    type: Discord.ApplicationCommandType.ChatInput,
    default_member_permissions: '0',
  },
];

const rest = new REST({ version: '10' }).setToken('你的机器人令牌');

(async () => {
  try {
    // 注册全局命令(如需服务器专属,替换为Routes.applicationGuildCommands(机器人ID, 服务器ID))
    const registeredCommands = await rest.put(
      Routes.applicationCommands('你的机器人ID'),
      { body: commands },
    );

    // 找到ping命令并设置权限
    const pingCmd = registeredCommands.find(cmd => cmd.name === 'ping');
    await rest.put(
      Routes.applicationCommandPermissions('你的机器人ID', pingCmd.id),
      {
        body: {
          permissions: [
            {
              id: '你的用户ID',
              type: 2, // User类型对应的数值
              permission: true,
            },
          ],
        },
      },
    );

    console.log('命令注册及权限设置完成');
  } catch (err) {
    console.error(err);
  }
})();

效果说明

完成以上设置后,其他用户打开斜杠命令列表时看不到这个ping命令,只有你自己能看到并正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:11:07