javascript - Discord.js。无法为斜杠命令添加权限

标签 javascript node.js discord.js

我尝试以这种方式添加命令权限,只有具有特定 Angular 色的用户才能使用它。首先,我创建了像文档中所述的命令。

然后我尝试获取每个命令并向其添加新权限:

await commands.forEach(command => {
    const permissions2 = [
        {
            id: guild.roles.everyone.id,
            type: 'ROLE',
            permission: false,
        }
    ];
    const permissions1 = [
        {
            id: botRole.id,
            type: 'ROLE',
            permission: true,
        },
    ];

    console.log(`Changing command ${command.id}`);
    command.permissions.add(permissions2);
    command.permissions.add(permissions1);
});

但无论我做什么,我都会收到此错误:TypeError [INVALID_TYPE]:提供的权限不是 ApplicationCommandPermissionData 数组。 我也尝试按照文档中所示运行此代码,但得到了相同的结果:

await commands.forEach(command => {
    ...
    console.log(`Changing command ${command.id}`);
    command.permissions.add({permissions2});
    command.permissions.add({permissions1});
});

最佳答案

将代码更改为此有帮助:

const permissions2 = {
        id: guild.roles.everyone.id,
        type: 'ROLE',
        permission: false,
    };
    const permissions1 =  {
        id: botRole.id,
        type: 'ROLE',
        permission: true,
    };
    let commandsList = await guild.commands.fetch();
    await commandsList.forEach(slashCommand => {
        console.log(`Changing command ${slashCommand.id}`);
        //set the permissions for each slashCommand
        guild.commands.permissions.add({
            command: slashCommand.id,
            permissions: [permissions1, permissions2]
        });
    });

关于javascript - Discord.js。无法为斜杠命令添加权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68731446/

相关文章:

javascript - 我的 discord.js 公会成员事件都没有发出,我的用户缓存基本上是空的,我的函数超时了?

javascript - 使用选择标签进行选择后禁用选择?

javascript - 如何通过 javascript 设置 -webkit-mask-box-image?

javascript - puppeteer 获取 href 数组,然后遍历每个 href 和该页面上的 href

windows - Windows 8 上带有 Express 的 node-webkit "Error: listen EACCES"

javascript - 我们如何阅读某些用户发送给我们的机器人的消息?

javascript - 更改discord.js 中的 channel 权限

javascript - 单选按钮切换选中的 php

javascript - 我将如何在 jQuery 中切换 setInterval 函数的状态?

mysql - 使用 nodemailer 发送邮件,并将表单数据插入 mysql 数据库