如何检查@everyone 是否可以在特定的 Discord 频道中发送消息?

时间:2021-05-12 01:28:33

标签: javascript node.js discord.js

基本上,我需要一个返回 truefalse 的函数,具体取决于指定频道是否已检查 @everyone 的 SEND_MESSAGES 权限。有人知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

首先,您需要同时获取 RoleChannel 对象,以检查该特定频道中角色的权限。然后您检查该特定频道中的权限是否具有特定权限。

例如:检查角色对象

let role = message.guild.roles.cache.get('roleid');
let channel = message.guild.channels.cache.get('channelid');
if(role.permissionsIn(channel).has('Permissions.FLAGS')){
    //do your thing.
}

例如:检查频道对象

let role = message.guild.roles.cache.get('roleid');
let channel = message.guild.channels.cache.get('channelid');
if(channel.permissionsFor(role).has('Permissions.FLAGS')){
    //do your thing.
}

注意everyone 角色 ID 与公会 ID 相同。所以使用公会 ID 来获取 everyone 角色对象。

参考:permissionsFor()permissionsIn()Permissions.FLAGS