如何覆盖 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
});
我用 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
});