【问题标题】:discordjs v12 无法读取未定义的属性角色
【发布时间】:2020-08-16 17:20:06
【问题描述】:

我正在使用最新版本 v12 创建一个不和谐机器人,我在添加时遇到了问题 成员的角色。

我知道 User 对象没有任何角色,但成员应该像文档中所说的那样。 这就是我获得用户的方式:

let member = msg.mentions.members.first();

这是我添加角色的方式:

member.roles.add(role);

虽然,我面临这个错误:

TypeError: Cannot read property 'roles' of undefined

上下文:

if(args[0] == 'blacklist'){
                if(args[1] != null){
                    if(args[2] != null){
                    let member = msg.mentions.members.first();
                    let role = (msg.member.guild.roles.cache.find(role => role.name === 'muted'));
                    member.roles.add(role);


                    } else {
                        msg.channel.send('> Error: missing reason');
                    }
                } else {
                    msg.channel.send('> Error: missing userID');
                }
            }`


【问题讨论】:

  • 是来自message 事件的“msg”参数吗?
  • 是的,它应该可以工作,对吧?
  • 您的代码对我有用。您能否提供一些额外的背景信息,以便我们帮助您找到问题?
  • @PedroFracassi 完成
  • 您介意分享您的修复作为答案吗?有同样问题的人将来可能会发现此页面。

标签: javascript discord discord.js


【解决方案1】:

如果消息中没有提及,您需要添加检查。


if(args[0] == 'blacklist'){
    if(args[1] != null){
        if(args[2] != null){
            let member = msg.mentions.members.first();
            if (!member) return msg.reply('Pls mention a member')
            let role = (msg.member.guild.roles.cache.find(role => role.name === 'muted'));
            member.roles.add(role);

        } else {
            msg.channel.send('> Error: missing reason');
        }
    } else {
        msg.channel.send('> Error: missing userID');
    }
}

【讨论】:

    猜你喜欢
    • 2020-12-29
    • 2020-08-17
    • 2019-01-25
    • 2020-12-14
    • 2021-11-01
    • 2018-08-17
    • 1970-01-01
    • 2022-01-13
    • 2021-04-01
    相关资源
    最近更新 更多