授予用户管理特定频道的权限

时间:2020-10-17 14:48:26

标签: javascript node.js discord.js

我想给特定的用户管理特定的频道。我刚刚尝试了MANAGE_CHANNEL和MANAGE_CHANNELS权限代码。如果是CHANNEL,则不是在创建通道(就像我没有执行命令一样),如果是CHANNELS,则是在创建通道,但是我无权更改通道的名称,权限,集成...该怎么办?

message.guild.channels.create(`${message.member.displayName}`, {
                    type: 'voice',
                    permissionOverwrites: [
                        {
                            id: message.guild.id,
                            deny: ['VIEW_CHANNEL'],
                        },
                        {
                            id: message.author.id,
                            allow: ['VIEW_CHANNEL', 'MANAGE_CHANNEL', 'CONNECT', 'SPEAK', 'MUTE_MEMBERS', 'DEAFEN_MEMBERS', 'MOVE_MEMBERS', 'USE_VAD'],
                        },
                    ],
                        }).then(chann => {
                        let category = message.guild.channels.cache.find(c => c.id == "764203829603991602" && c.type == "category");
                        message.member.voice.setChannel(chann.id);
                if (!category) throw new Error("Category channel does not exist");
                chann.setParent(category.id, { lockPermissions: false });});
                console.log(`${message.member.displayName} létrehozva!`)
                break;

1 个答案:

答案 0 :(得分:0)

MANAGE_CHANNEL不是有效的权限(如Permissions类的文档中所述),因此您必须使用MANAGE_CHANNELS。通过授予此权限,用户应该已经能够修改频道名称和主题。要更改集成,您还需要分配MANAGE_WEBHOOKS权限(请注意,要添加漫游器,用户也需要“管理服务器”权限)。至于为什么拥有MANAGE_CHANNELS权限却无法编辑频道名称,我不确定,因为当我自己测试它时,它可以很好地工作。我只能说必须确保您的机器人在服务器上具有“管理频道”权限。