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