[英]Access permissions for @everyone in a channel Discord.js v14
我想检查@everyone
是否对定义的频道具有特定权限。
在 v13 中,我让它工作得很好:
const channelPermissions = channel.guild.roles.everyone.permissionsIn(channel);
if (channelPermissions.has([Permissions.FLAGS.SEND_MESSAGES, Permissions.FLAGS.VIEW_CHANNEL])) {
interaction.reply('Hey! You can use this channel!');
}
这是我试图让它发挥作用:
const { PermissionsBitField } = require('discord.js');
const channelPermissions = interaction.channel.guild.roles.everyone.permissionsIn(channel);
if (channelPermissions.has([PermissionsBitField.Flags.SendMessages, PermissionsBitField.Flags.ViewChannel])) {
interaction.reply('Hey! You can use this channel!');
}
但是,每次执行时都会出现以下错误:
TypeError: Cannot read properties of null (reading 'has')
正如文档所说, has()
模式与以前相同,我不明白这个错误来自哪里。
欢迎任何帮助或解释。 谢谢!
愚蠢的我,在代码的上方, if/else
语句中的拼写错误会使channelPermissions
null。
但是,在Discord.js 支持服务器中寻求帮助时,有人与我分享了另一种从频道上的@everyone
获取权限的方法:
const channelPermissions = channel.permissionsFor(interaction.guild.id);
我想我下次应该更加小心!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.