繁体   English   中英

DISCORD.JS V13 TypeError:无法读取未定义的属性“具有”

[英]DISCORD.JS V13 TypeError: Cannot read property 'has' of undefined

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

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}`)
    }
}

不知何故 member.permissions 未定义,也许你拼错了,将成员记录到控制台

好的,基本上这条消息是说 discord.js 没有识别出消息中提到了用户。 如果 users 集合为空,则 .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: ["he has the admin"]})
message.reply(`${member.tag}`)

您将获得一个没有 .permissions 的User .permissions 使用message.mentions.members.first()获取GuildMember object

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

UserGuildMember不同:请参阅discord.js 中的 User 和 GuildMember 有什么区别?

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`)
        }
    }
   

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM