【问题标题】:Discord.js changing channel permissions does nothingDiscord.js 更改频道权限无济于事
【发布时间】:2021-09-16 08:45:27
【问题描述】:

我最近开始研究 discord.js 机器人,遇到了一个非常奇怪的问题,我无法解决,也无法弄清楚该怎么做。我想创建一个具有自定义权限的语音通道,所以我使用了这个功能(或者我不知道它叫什么我是js新手):

message.guild.channels.create(`Room of ${message.member.displayName}`, {type: 'voice'}, {
    permissionOverwrites: [{ 
        id: message.guild.defaultRole, 
        allow: 'VIEW_CHANNEL'
    }]
});

我注意到了这一点:如果我将{type: 'voice'} 放在permissionOverwrites 之前,它可以正常工作(除了权限根本不起作用),但是如果我将它放在permissionOverwrites 之后,权限可以正常工作,但类型不起作用。

我没有收到控制台错误或任何错误。

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    根据discord.js docs for channel creation,方法create() 只接受两个参数:频道名称频道选项
    这意味着您必须将所有选项放入一个对象中:

    message.guild.channels.create(`Room of ${message.member.displayName}`, {
        type: 'voice',
        permissionOverwrites: [{ 
            id: message.guild.defaultRole, 
            allow: 'VIEW_CHANNEL'
        }]
    });
    

    因此,您遇到这种行为的原因仅仅是您的 create() 的第三个参数被完全忽略,无论您在那里放什么。

    【讨论】:

    • 是的!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-04-18
    • 2021-02-01
    • 2020-08-12
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 2019-04-01
    相关资源
    最近更新 更多