我试图找出如何检查我的机器人是否有权限发送消息,并包括嵌入到一个特定的渠道。我发现下面的代码返回一个布尔值,如果一个特定的成员在一个特定的渠道有权限。但我不知道如何执行相同的行动为机器人本身。
message.member.permissionIn('channel_id').hasPermission('SEND_MESSAGES');
gudnpqoy1#
需要检查帮众是否有权限。
[Guild].me.permissionsIn('channel_id').has('SEND_MESSAGES')
1hdlvixo2#
在Discord.JS v14中,您可以执行以下操作:
const { PermissionFlagsBits } = require("discord.js"); // Check for permissions if (!channel.permissionsFor(interaction.guild.members.me).has(PermissionFlagsBits.SendMessages)) { // No permissions! }
其中channel是通道对象
channel
6uxekuva3#
其他答案都没有解释如何获取GuildMember对象,所以我将尝试解释它。您所需要做的就是从client获取GuildMember。要做到这一点,请将client.guilds.cache.get(guild_id).members.me用于机器人的GuildMember,然后从那里您可以使用相同的代码。尝试以下操作:
GuildMember
client
client.guilds.cache.get(guild_id).members.me
client.guilds.cache.get(guild_id).members.me.permissionsIn(channel_id).has('SEND_MESSAGES')
其中guild_id是服务器ID,channel_id是通道ID。或者,如果你已经有了Message对象,那么你可以从那里直接调用Guild。
guild_id
channel_id
Message
Guild
message.guild.members.me.permissionsIn(channel_id).has('SEND_MESSAGES')
3条答案
按热度按时间gudnpqoy1#
需要检查帮众是否有权限。
1hdlvixo2#
在Discord.JS v14中,您可以执行以下操作:
其中
channel
是通道对象6uxekuva3#
其他答案都没有解释如何获取
GuildMember
对象,所以我将尝试解释它。您所需要做的就是从client
获取GuildMember
。要做到这一点,请将client.guilds.cache.get(guild_id).members.me
用于机器人的GuildMember
,然后从那里您可以使用相同的代码。尝试以下操作:其中
guild_id
是服务器ID,channel_id
是通道ID。或者,如果你已经有了
Message
对象,那么你可以从那里直接调用Guild
。