[英]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.