对于我的父类别,权限设置为每个人都无法连接到创建的频道,我希望这样当有人对 ✅ 做出反应时,机器人允许任何人加入语音频道。代码不会产生错误,但权限不会改变。有谁知道为什么?
这是我的代码:
if(reaction.emoji.name === '✅') {
message.channel.overwritePermissions([
{
id: message.channel.guild.roles.everyone,
allow: ['CONNECT'],
},
]);
}
答案 0 :(得分:1)
为了更新“@everyone”角色的权限覆盖,您需要使用 message.guild.id
除此之外,您目前正在尝试更新 text channel
的覆盖以向服务器中的每个人授予 connect
权限,老实说,这并没有多大意义。
如果您尝试在执行器存在于语音通道内时执行此命令,我的建议如下:
user
参数,因此您可以简单地使用 const member = reaction.guild.member(user.id)
来获取反应器的 GuildMember 对象。member.voice.channel
函数获取执行器的 channel 对象最后,在完成上述所有操作后,您的代码应如下所示:
const member = reaction.guild.member(user.id)
const channel = member.voice.channel
channel.overwritePermissions([
{
id: message.guild.id,
allow: ['CONNECT']
}
])