好的,所以我对Discord.js环境还很陌生,但是我一直在寻找并尝试从任何地方进行的所有操作,但是我总是会遇到相同的错误,而且我真的不知道为什么。具体地说,我在此代码块底部的.addRoles()块遇到了麻烦,其他所有东西都正常工作。
client.on('messageReactionAdd', async (reaction, user) => {
if(reaction.emoji.name === "✅" && reaction.message.id === "697450986889019439") { //works
const guild = reaction.message.guild;
console.log(guild);
const memberWhoReacted = guild.members.cache.find(member => member.id === user.id);
console.log(memberWhoReacted);
var role = client.guilds.cache.find(guild => guild.id === '697237754752532532').roles.cache.find(role => role.name === 'Patreon').id; // Overcomplicated way of retrieving id, I know lol
console.log(role);
memberWhoReacted.addRole(role);
}
});
我已经仔细检查了此代码块中的所有内容,memberWhoReacted是正确的(它返回了应有的GuildMember),角色返回了正确的角色对象(我也尝试过硬编码id)。一切都正确!但是,当我将其放到.addRole()中的那一刻,一切都会爆炸。
UnhandledPromiseRejectionWarning: TypeError: memberWhoReacted.addRole is not a function
//There's more console stuff I can share as well
老实说,我已经在同一问题上花了两天时间(因为我不想用这个看似简单的问题打扰任何人),但我放弃了哈哈 另外,为简单起见,我的客户端称为 client 。 谢谢您的时间。