我正在尝试为消息作者创建一个频道,只有来自partyInvitees
集合(Collection<Snowflake, GuildMember>
)的成员才能加入。
const permission = Discord.Permissions.FLAGS;
message.guild.createRole({
name: message.author.username + "'s Party",
})
.then(role => {
message.guild.createChannel(message.author.username + "'s Party", 'voice')
.then(channel => {
channel.setParent('401856302290042884');
channel.overwritePermissions(role, { [permission.CONNECT]: true, [permission.SPEAK]: true });
partyInvitees.forEach(user => user.addRole(role));
message.reply("your party's all set-up");
});
});
我有一个CategoryChannel派对,标识为401856302290042884
,我正在尝试创建一个语音频道。
我希望只有message.author.username + "'s Party"
角色的人才能加入此语音频道。
对于@everyone角色
,所有父频道401856302290042884
的权限都已关闭
答案 0 :(得分:0)
根据您的示例,我们将假设该频道不与该类别同步,并且该类别没有&#34;阅读文字频道&amp;请参阅语音频道&#34;设为false。在创建频道时,在设置角色的权限时,您并未将@ everyone的设置视为语音频道权限为false。你有第二步,但你错过了第一步。要解决此问题,我们必须设置@ everyone的权限#34;请参阅语音频道&#34;如果设置角色,请将Voice Chanel权限设置为true。我们可以使用您用来设置角色权限的overwritePermissions方法:
const everyone = message.guild.roles.find("@" + "everyone"); // We seperate it that way if it's run in eval, it won't tag.
channel.overwritePermissions(everyone, {"VIEW_CHANNEL": false});
如果您在角色的overwritePermissions之前插入上述内容,则应该提供您正在寻找的效果。快乐的编码!