javascript Discord.js检查bot是否能够将嵌入发送到特定通道

h22fl7wq  于 2023-01-16  发布在  Java
关注(0)|答案(3)|浏览(135)

我试图找出如何检查我的机器人是否有权限发送消息,并包括嵌入到一个特定的渠道。
我发现下面的代码返回一个布尔值,如果一个特定的成员在一个特定的渠道有权限。但我不知道如何执行相同的行动为机器人本身。

message.member.permissionIn('channel_id').hasPermission('SEND_MESSAGES');
gudnpqoy

gudnpqoy1#

需要检查帮众是否有权限。

[Guild].me.permissionsIn('channel_id').has('SEND_MESSAGES')
1hdlvixo

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是通道对象

6uxekuva

6uxekuva3#

其他答案都没有解释如何获取GuildMember对象,所以我将尝试解释它。您所需要做的就是从client获取GuildMember。要做到这一点,请将client.guilds.cache.get(guild_id).members.me用于机器人的GuildMember,然后从那里您可以使用相同的代码。尝试以下操作:

client.guilds.cache.get(guild_id).members.me.permissionsIn(channel_id).has('SEND_MESSAGES')

其中guild_id是服务器ID,channel_id是通道ID。
或者,如果你已经有了Message对象,那么你可以从那里直接调用Guild

message.guild.members.me.permissionsIn(channel_id).has('SEND_MESSAGES')

相关问题