如何将斜杠命令隐藏到特定用户或频道 Discord.js v13

Posted

技术标签:

【中文标题】如何将斜杠命令隐藏到特定用户或频道 Discord.js v13【英文标题】:How to hide slash command to specific user or channel Discord.js v13 【发布时间】:2021-11-11 06:37:01 【问题描述】:

是否可以在 discord.js v13.1.0 中隐藏斜杠命令? 我试图添加一些权限,但我发现没有什么能像

" command.permissions.add( "权限数组" ) "

如果有办法做到这一点,那就太棒了

我看到支持人员发现了这个问题,但您知道他们何时会添加此功能吗?

【问题讨论】:

【参考方案1】:

根据discordjs guide,需要使用ApplicationCommandPermissionsManager#set()ApplicationCommandPermissionsManager#add()

使用 set()

const fullPermissions = [
    
        id: '123456789012345678',
        permissions: [
            id: '224617799434108928',
            type: 'USER',
            permission: false,
        ],
    ,
    
        id: '876543210987654321',
        permissions: [
            id: '464464090157416448',
            type: 'ROLE',
            permission: true,
        ],
    ,
];

await client.guilds.cache.get('123456789012345678')?.commands.permissions.set( fullPermissions );

使用 add()

if (!client.application?.owner) await client.application?.fetch();

const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321');

const permissions = [
    
        id: '224617799434108928',
        type: 'USER',
        permission: false,
    ,
];

await command.permissions.add( permissions );

【讨论】:

我已经看到了,但是 add 方法不起作用 即使这样,集合中使用的第一个 id 是什么 据我所知,您不能像那样为您的机器人“隐藏”斜杠命令。权限系统为指定的用户/角色禁用斜线命令,使其无法使用。您可以从频道或角色设置中禁用斜杠命令,这将隐藏频道中除系统命令之外的所有斜杠命令。 但是这种方式在获得许可的情况下对我不起作用,我真的不明白我可以在哪里或如何使用它 可能是因为你有“管理员”之类的?你检查过吗??

以上是关于如何将斜杠命令隐藏到特定用户或频道 Discord.js v13的主要内容,如果未能解决你的问题,请参考以下文章

带有斜杠命令的 Discord.js 语音通道

Discord.js - 允许特定频道中的命令[关闭]

Discord with Python:将嵌入发送到用户指定的特定频道

DiscordJS 13用户嵌入显示在特定频道发送的最后一条消息

Discord.py - 如何接收和发送消息到特定频道?

加入机器人 discord.js 的语音频道后如何忽略相同的命令