Discord.js 无法读取属性 [英] Discord.js can't read properties
问题描述
我正在尝试使用 discord.js 发出禁令命令,但我无法使其工作.它总是回复无法读取未定义的属性(读取'有')"
I'm trying to make a ban command using discord.js, but I can't make it work. It always reply with "Cannot read properties of undefined (reading 'has')"
代码:
async run(message, args, client) {
if (message.author.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) {
if (message.members.mentions.first()) {
try {
message.members.mentions.first().kick();
} catch {
message.reply("I don't have permission to ban" + message.members.mentions.first());
}
} else {
message.reply("You cannot ban " + message.members.mentions.first());
}
}
}
我尝试查找一些示例代码,但它仍然不适合我
I tried looking up some sample codes but it still doesn't work for me
推荐答案
Message.author
是 User
实例,.permissions
没有不存在.使用 Message.member
来获取 GuildMember
.
Message.author
is a User
instance, which .permissions
doesn't exist on. Use Message.member
instead to get the GuildMember
.
另外,如 @user15517071 在 这条评论,你需要使用Message.mentions.members
而不是Message.members.mentions代码>
Also, as stated by @user15517071 in this comment, you need to use Message.mentions.members
instead of Message.members.mentions
这是修改后的代码
async run(message, args, client) {
if (message.member.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) {
if (message.mentions.members.first()) {
try {
message.mentions.members.first().kick();
} catch {
message.reply("I don't have permission to ban" + message.mentions.members.first());
}
} else {
message.reply("You cannot ban " + message.members.mentions.first());
}
}
}
这篇关于Discord.js 无法读取属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!