试图找到一个成员并接收无法读取未定义错误的属性“get”[关闭]
Posted
技术标签:
【中文标题】试图找到一个成员并接收无法读取未定义错误的属性“get”[关闭]【英文标题】:Trying to find a member and receive Cannot read property 'get' of undefined error [closed] 【发布时间】:2021-06-29 15:30:33 【问题描述】:我有这段代码,它显示了这个错误:“无法读取未定义的属性'get'。”
我该如何解决?有问题的行上面有注释。
module.exports =
name: 'mod',
description: 'Mod command',
execute(message, args, Discord)
const target = message.mentions.users.first();
const InsufficientPermissions = new Discord.MessageEmbed()
.setColor('#FF0000')
.setDescription('Insufficient permissions!');
if (!message.member.permissions.has('ADMINISTRATOR'))
message.channel.send(InsufficientPermissions);
const SpecifyMember = new Discord.MessageEmbed()
.setColor('#FF0000')
.setDescription('Please specify a user!');
const ModAdded = new Discord.MessageEmbed()
.setColor('#0099ff')
.setDescription(`Mod was added to <@$target>`);
// THE LINE BELOW IS THE PROBLEM
const member = message.member.cache.get(target.id);
if (!target)
message.channel.send(SpecifyMember);
else
member.roles.add('803548878396981258', '816377135887286292');
message.channel.send(ModAdded);
,
;
【问题讨论】:
欢迎来到 Stack Overflow。请使用tour 并阅读How to Ask。那篇文章的一个重要部分的标题是“写一个总结特定问题的标题”。当前标题没有。还请edit您的问题包括您对 javascript 中最常见的错误之一所做的任何研究,以及您为自己解决问题所做的任何尝试。 【参考方案1】:问题是message.member
将消息的作者作为公会成员返回,因此它不会有cache
属性。你可以使用message.guild.members.cache.get()
。
但是,您可以获得message.mentions.members
,而不是message.mentions.users
。这样您就不必从用户那里获取成员对象:
module.exports =
name: 'mod',
description: 'Mod command',
execute(message, args, Discord)
const target = message.mentions.members.first();
const InsufficientPermissions = new Discord.MessageEmbed()
.setColor('#FF0000')
.setDescription('Insufficient permissions!');
if (!message.member.permissions.has('ADMINISTRATOR'))
message.channel.send(InsufficientPermissions);
const SpecifyMember = new Discord.MessageEmbed()
.setColor('#FF0000')
.setDescription('Please specify a user!');
const ModAdded = new Discord.MessageEmbed()
.setColor('#0099ff')
.setDescription(`Mod was added to <@$target>`);
if (!target)
message.channel.send(SpecifyMember);
else
target.roles.add('803548878396981258', '816377135887286292');
message.channel.send(ModAdded);
,
;
【讨论】:
以上是关于试图找到一个成员并接收无法读取未定义错误的属性“get”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
令牌无效错误:指定的令牌无效:无法读取未定义的属性“替换”?
获取未捕获的类型错误:无法读取未定义的属性“toLowerCase”[关闭]
试图在 [vue.js 3] 中创建一个原型来全局访问我的 Api (Axios),但我总是收到此错误:“无法读取未定义的属性”
未捕获(承诺)TypeError:无法读取未定义的属性“长度”