Discord js v12:无法读取未定义的属性“添加”[重复]

Posted

技术标签:

【中文标题】Discord js v12:无法读取未定义的属性“添加”[重复]【英文标题】:Discord js v12: Cannot read property 'add' of undefined [duplicate] 【发布时间】:2021-03-04 22:36:48 【问题描述】:

不知道为什么它不起作用,有人可以帮助我吗?我绝望了。

bot.on("message", (message) => 
    var roles = message.author.roles
    let roleID = '1234567890';
    if (message.author.bot) return; 
    if(message.content.startsWith(prefix + 'ttt')) 
        roles.add(roleID);          
    
);

The Error is the same like in the title.
        roles.add(roleID);
              ^

TypeError: Cannot read property 'add' of undefined  

【问题讨论】:

我明白了!谢谢! 您好酋长国,请告诉我们您是如何解决问题的。您的解决方案可以帮助具有相同行为的其他人。 【参考方案1】:

message.author 中没有属性 roles。您可能想查看具有该属性的 message.member

相关链接:

https://discord.js.org/#/docs/main/master/class/Message https://discord.js.org/#/docs/main/master/class/User

【讨论】:

【参考方案2】:

如果你想将角色添加给使用它的人,你应该得到消息成员并给予它。

bot.on("message", (message) => 
    var roles = message.author.roles
    let roleID = '779756792737300490';
    if (message.author.bot) return; 
    if(message.content.startsWith(prefix + 'ttt')) 
        message.member.roles.add(roleID);          
    
);

我刚改了第 6 行。

您也不能将角色授予用户。您只能将其提供给会员。

您也可以查看文档:

会员:https://discord.js.org/#/docs/main/master/class/Message?scrollTo=member 用户:https://discord.js.org/#/docs/main/master/class/User

【讨论】:

【参考方案3】:

这将起作用:

bot.on("message", (message) => 
    var guildMember = message.member
    let roleID = '779756792737300490';
    let roleNAME = 'TestRole';
    let userID = message.author.tag + " " + (message.author.id);
    if (message.author.bot) return; 
    if(message.content.startsWith(prefix + 'ttt')) 
        guildMember.roles.add(roleID); 
        console.log(`Give "$roleNAME" to User "$userID" `)    
    
    if(message.content.startsWith(prefix + "zzz")) 
        guildMember.roles.remove(roleID);
        console.log(`Removed "$roleNAME" from User "$userID"`)
    
);

我还在里面放了一个console.log代码,这样你就可以看到有人删除了一个角色还是给了一个角色,如果你删除了2行代码,它也可以工作;)

【讨论】:

以上是关于Discord js v12:无法读取未定义的属性“添加”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法读取未定义 discord.js v12 的属性“发送”

Discord.js V12 TypeError:无法读取未定义的属性“发送”

Discord js v12:无法读取未定义的属性“添加”[重复]

Discord.js v12 角色添加到提到的用户问题

Discord.js 无法读取未定义的属性“获取”

Discord.js 的欢迎消息 - “无法读取未定义的属性 'get'”