簡體   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