【问题标题】:How to overwrite TextChannel permissions如何覆盖 TextChannel 权限
【发布时间】:2018-12-21 18:31:44
【问题描述】:

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

为了解释更多细节,我尝试创建棋盘游戏“狼人”,与我的朋友在 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
})

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

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

我没有收到错误,控制台没有显示任何异常......但是机器人没有做我想要的^^

感谢您的帮助 :) 奥克兹尔

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

【问题讨论】:

    标签: node.js discord user-permissions discord.js


    【解决方案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
    });
    

    【讨论】:

    • 您好^^谢谢您的回答!但我对此有一点错误:link 一位朋友看了这个错误,并说我必须这样做:link(开头与你的有点不同)但我有一个不同的错误:link
    • 对不起,我写了一个非常愚蠢的东西没有测试它'-_-。你的第二次尝试是对的,我编辑了答案,现在试试;)
    • 这个周末我不在家,也很抱歉我之前无法回答你:/我的代码有错误...这是我的机器人索引:link(你的代码是形式 lign 30 到 40 ^^),我已经用message.member.channels.find() 进行了测试,但这不起作用 (link :/)
    • 接下来我用message.guild.channels.find() 进行了测试,不会出现同样的错误!但是还是出错x):link,可以用user_id,或者tolg.id进行测试(有朋友说可以);两者都不起作用:(现在我什么都不懂xD你认为它最终能起作用吗?
    • 第一个不起作用,因为message.member.channels 不存在。第二个不起作用,因为 user_id 不是 UserResolvable,但如果您不发布代码,我无法帮助您。请发布您的代码(产生第二个错误的代码)
    猜你喜欢
    • 2020-01-28
    • 2019-10-29
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 2021-03-16
    • 1970-01-01
    • 2017-03-13
    相关资源
    最近更新 更多