Discord.js 无法读取属性 [英] Discord.js can't read properties

查看:16
本文介绍了Discord.js 无法读取属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 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.authorUser 实例,.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆