如何覆盖 TextChannel 权限

How to overwrite TextChannel permissions

我用 Node.js 编写了一个 Discord 机器人代码,我想用我的机器人代码为玩家分配权限

为了解释更多细节,我尝试创建棋盘游戏 "Werewolves",以便与我的朋友在 Discord 上玩。我开发了这个机器人(使用 node.js ;我是初学者),当我在 Discord 上输入命令时,它允许向玩家发送消息以说明他在游戏中的角色。

但我现在正在阻止一些事情:例如对于 "Werewolves" 的玩家,我想给她一个频道的访问权限,这样他们就可以一起聊天,而其他玩家不能' t 查看消息(我可以用 "roles" 做到这一点,但是当有人检查另一个玩家的角色时,他可以查看他的角色;而且我认为没有什么是看不到角色的玩家)

我查看了库 discord.js,我查看了两个解决方案;但我不能同时工作! 第一个:(常量 "lg" 用于狼人;法语中的 loup-garou ^^)

 .then(function(member) {
     let lg = new Discord.Permissions(member, 0x00000400)
 })

第二个"solution":

.overwritePermissions(guild.member {
    'VIEW_CHANNEL': true 
    'SEND_MESSAGES': true 
    'READ_MESSAGE_HISTORY': true
})

我再说一遍,上面已经解释过了;我试图得到,玩家有一个新的 "role"(但这不是我想添加给他的角色)这一事实,为他分配权限,因为他可以看到一个特殊的频道(狼人-频道,如果他是游戏中的狼人),他可以在同一个频道上发送消息

这是一个屏幕(https://prnt.sc/k5qvvb):带有箭头的地方是用户应该有他的名字的地方(这里例如是我的帐户^^),黄色是他应该拥有的权限有(把其他人放在"false"显然不需要)

我没有收到任何错误,控制台没有显示任何异常...但是机器人没有按照我的要求进行操作^^

感谢您的帮助:) 奥兹尔

PS : 我是法国人,如果我的英语不太好,请见谅^^

您的第二次尝试是正确的,但是您作为用户传递 guild.member,但那不是 GuildMember (it's undefined)。因为,属性 不存在。
尝试传递 UserResolvable type object: <Message>.author, <Message>.member.

message.guild.channels.find('name', 'loups-garous')
.overwritePermissions(UserResolvable, { // Pass 'UserResolvable' type thing as described in Wiki!
  VIEW_CHANNEL: true,
  SEND_MESSAGES: true,
  READ_MESSAGE_HISTORY: true,
  ATTACH_FILES: false
});