TypeError:无法读取未定义的属性“第一个" [英] TypeError: Cannot read property 'first' of undefined
问题描述
client.on('message', (message) => {
const { member, mentions } = message;
const tag = `<@${member.id}>`;
if (message.content.startsWith(`${prefix}ban`)) {
if (
member.hasPermission('ADMINISTRATOR') ||
member.hasPermission('BAN_MEMBERS')
) {
const target = mentions.user.first();
if (target) {
const targetMember = message.guild.members.cache.get(target.id);
targetMember.ban();
message.channel.send(
`${tag} Cet.te ancien.ne membre a été bannii avec succès !`
);
} else {
message.channel.send(`${tag} Merci de spécifier le membre à bannir.`);
}
} else {
message.channel.send(
`${tag} Tu n'as pas la permission d'effectuer cette commande.`
);
}
}
});
我不确定代码中的错误是什么,我们将不胜感激!我还将就如何总体上改进此代码提出任何建议.
I'm not sure what the error in my code is, any help is appreciated! I would also take any suggestions on how to improve this code in general.
推荐答案
user
不是 mentions
的属性.而是使用 users
:
user
is not a property of mentions
. Instead use users
:
mentions.users.first();
还有一点建议,不是将提及作为 User
对象,而是将其转换为 GuildMember
对象,您可以直接跳到 GuildMember
对象.
Also, as a bit of a suggestion, instead of getting the mention as a User
object, then turning it into a GuildMember
object, you could just skip straight to the GuildMember
object.
// instead of:
const target = mentions.users.first();
// use:
const target = mentions.members.first();
mentions.users
返回该消息中提到的每个用户的集合.您正在使用第一个 User
对象(首次提及).
mentions.users
returns a collection of every user that was mentioned in that message. You are taking the first User
object (first mention).
您正在然后使用 GuildMember
对象.org/#/docs/main/stable/class/Guild?scrollTo = member"rel =" nofollow noreferrer> Guild.member()
函数:
You are then turning that User
object into a GuildMember
object using the Guild.member()
function:
message.guild.members.cache.get(target.id);
但是, message.members
返回所提到的每个 GuildMember
的集合,而无需转换 User 代码>对象在以后的代码中指向
GuildMember
,因为它已经是 GuildMember
.
However, message.members
returns a collection of every GuildMember
that was mentioned, eliminating the need to convert a User
object to a GuildMember
later in your code, as it would already be a GuildMember
.
这篇关于TypeError:无法读取未定义的属性“第一个"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!