我用Node.js编写了一个Discord Bot,我想用我的机器人的代码为播放器分配权限
为解释更多细节,我尝试创建棋盘游戏“ Werewolves”,以便与我的朋友在Discord上玩。我开发了该机器人(使用node.js;我是新手),当我在Discord上输入命令时,它可以向玩家发送信息以说明他在游戏中的角色。
但是我现在要阻止一些事情:例如,对于“狼人”玩家,我想授予她访问频道的权限,以便他们可以一起聊天,而其他玩家则无法查看消息(我可以用“角色”来做到这一点,但是当有人检查另一个玩家的角色时,他可以查看他的角色;而且我不认为有些东西看不到玩家的角色)
我已经检查了discord.js库,并且查看了两种解决方案;但是我不能两者兼得! 第一个:(常量“ lg”用于狼人;法语中的loup-garou ^^)
.then(function(member) {
let lg = new Discord.Permissions(member, 0x00000400)
})
第二个“解决方案”:
.overwritePermissions(guild.member {
'VIEW_CHANNEL': true
'SEND_MESSAGES': true
'READ_MESSAGE_HISTORY': true
})
我重复一遍,但是我已经在上面解释了;我试图获得一个事实,即玩家有一个新的“角色”(但这不是我要添加到他的角色),为他分配权限,以便他可以看到一个特殊频道(狼人频道,如果他是游戏中的狼人),他可以在同一频道上发送消息
这是一个屏幕(https://prnt.sc/k5qvvb):带有箭头的位置是用户应使用其名称的位置(例如,这是我的帐户^^),黄色时应具有该权限(显然不需要将其他人置于“假”状态
我没有收到任何错误,控制台没有显示任何异常...但是该机器人没有执行我想要的操作^^
感谢您的帮助:) 奥昔尔
PS:我是法国人,对不起,如果我的英语不太好^^
答案 0 :(得分:1)
您的第二次尝试是正确的,但是您以用户身份传递guild.member
,但这不是GuildMember
(它是undefined
)。因为,该属性不存在。
尝试传递UserResolvable
类型的对象:<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
});