这是我的代码:
let userlist = [];
let reactedlist = [];
client.on('message', msg=> {
const filter = () => {
return true
};
const collector = msg.createReactionCollector(filter, { time: 86400000 });
collector.on('collect', (a,reaction) => {
console.log(reaction.id);
if(!userlist.includes(reaction.id) && !reactedlist.includes(reaction.id)){
userlist.push(reaction.id)
}
console.log(userlist);
userlist.forEach(id => {
const userReactions = msg.reactions.cache.filter(reaction => reaction.users.cache.has(id));
try {
let duo = '';
for (const reaction of userReactions.values()) {
duo+=reaction.emoji.id;
}
if(duo.includes('854754738956664901') && duo.includes('854754766609055764')){
userlist.shift();
const member = client.users.fetch(id);
let role = msg.guild.roles.cache.find(i => i.id === '854756696965644319')
member.roles.add(role);
if(!reactedlist.includes(id)){
reactedlist += id;
}
}
} catch (error) {
console.error(error);
}
});
});
collector.on('end', collected => {
console.log(`Collected ${collected.size} items`);
});
});
client.login('');
答案 0 :(得分:2)
用户不能添加角色。
要获得 GuildMember,您应该进入公会并从 GuildMemberManager 中获取。
const member = await msg.guild.members.fetch(id);
member.roles.add(role);