【问题标题】:Check if bot has permissions in a specific channel discord.js v14检查机器人是否在特定频道中具有权限 discord.js v14
【发布时间】:2023-02-20 02:06:03
【问题描述】:

我正在尝试弄清楚如何检查我的机器人是否在某个频道中具有正确的 ViewChannel 和 SendMessages。我用 if(!interaction.guild.me.permissionsIn(channel).has("VIEW_CHANNEL)) 尝试了 discord.js v13 变体。然后将其升级到 discord.js v14。 if(!interaction. guild.members.me.permissionsIn(channel).has([PermissionsFlagsBits.ViewChannel, PermissionsFlagsBits.SendMessages]))

但是我不断收到同样的错误:

TypeError: Cannot read properties of undefined (reading 'id') at GuildMemberRoleManager.get cache [as cache] (C:\Users\sdamz\OneDrive\Desktop\dcbot v2\node_modules\discord.js\src\managers\GuildMemberRoleManager.js:37:101) ...

已经做到了

if(!interaction.guild.members.me.permissions.has([PermissionsFlagsBits.ViewChannel, PermissionsFlagsBits.SendMessagesl])

但得到了同样的错误。

我将不胜感激!

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    您需要 Guilds 意图

    const client = new Client({
      intents: [GatewayIntentBits.Guilds, /* other intents */]
    })
    

    问题是here。它试图设置每个人的角色,但它是未缓存的,没有 Guilds 意图。

    【讨论】:

      【解决方案2】:

      我也在为这个问题而苦苦挣扎,这对我有用:

      (interaction.guild.members.me).permissionsIn("Your_Channel_ID").has(PermissionsBitField.Flags.SendMessages);
      

      【讨论】:

        猜你喜欢
        • 2023-01-11
        • 2021-05-13
        • 2021-04-24
        • 2023-01-16
        • 2021-08-11
        • 2021-08-18
        • 2020-11-05
        • 2022-11-11
        • 2021-01-08
        相关资源
        最近更新 更多