【问题标题】:DISCORD.JS V13 TypeError: Cannot read property 'has' of undefinedDISCORD.JS V13 TypeError:无法读取未定义的属性“有”
【发布时间】:2021-12-31 12:29:06
【问题描述】:

我正在做一个机器人不和谐,我试图检查提到的成员是否有权限 但我有这个问题:

if(member.permissions.has("ADMINISTRATOR")) return message.reply({content: ["no"]})
                      ^

TypeError: Cannot read property 'has' of undefined

这是我的代码:

const { Client, Message } = require("discord.js");

module.exports = {
    name: "user",
    description: "comando a risposta",
    aliases: ["boop", "test"],
    /** 
     * @param {Client} client 
     * @param {Message} message 
     * @param {String[]} args 
     */
    run: async (client, message, args) => {
        const member = message.mentions.users.first();
        if(member.permissions.has("ADMINISTRATOR")) return message.reply({content: ["he has the admin"]})
        message.reply(`${member.tag}`)
    }
}

【问题讨论】:

标签: javascript node.js discord discord.js


【解决方案1】:

好的,这条消息本质上是说 discord.js 没有识别出消息中提到的用户。如果用户集合为空,.first() 方法将返回 undefined。因此,如果消息中没有提到任何成员,我建议处理成员可能未定义。

const member = message.mentions.users.first();

if (member === undefined) return message.reply({ content: "no user mentioned" })

if (member.permissions.has("ADMINISTRATOR"))
    return message.reply({ content: "user has the admin" })
message.reply({ content: `${member.tag}` });

【讨论】:

  • 是的,现在它可以工作了,谢谢
【解决方案2】:

你得到一个没有.permissionsUser 对象。获取GuildMember 对象,而不是message.mentions.members.first()

const member = message.mentions.members.first()

Users 与GuildMembers 不同:见What is the difference between a User and a GuildMember in discord.js?

【讨论】:

  • 谢谢现在正在工作!
【解决方案3】:
const { Client, Message } = require("discord.js");

module.exports = {
    name: "user",
    description: "comando a risposta",
    aliases: ["boop", "test"],
    /** 
     * @param {Client} client 
     * @param {Message} message 
     * @param {String[]} args 
     */
    run: async (client, message, args) => {
        const member = message.mentions.members.first()
        if(member.permissions.has("ADMINISTRATOR")) {
            message.reply(`${member.tag} ha l'admin`)
        }
        if(!member.permissions.has("ADMINISTRATOR")) {
            message.reply(`${member.tag} non ha l'admin`)
        }
    }
   

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 1970-01-01
    • 2022-01-13
    • 2021-09-25
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 2020-07-14
    相关资源
    最近更新 更多