Discord.js 代码不起作用。我应该给成员一个角色,但它说添加未定义

时间:2021-06-25 20:39:10

标签: discord.js

这是我的代码:

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('');

1 个答案:

答案 0 :(得分:2)

用户不能添加角色。

要获得 GuildMember,您应该进入公会并从 GuildMemberManager 中获取。

const member = await msg.guild.members.fetch(id);
member.roles.add(role);