[英]discord.js v13 permissions.has() function not working (TypeError: Cannot read properties of undefined (reading 'has'))
[英]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()
User
與GuildMember
不同:請參閱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.