Javascript 反应角色不和谐JS

Javascript 反应角色不和谐JS,javascript,discord,discord.js,chatbot,Javascript,Discord,Discord.js,Chatbot,我试图将反应角色编码到我的机器人中,但我在消息ID和反应ID方面遇到了问题。我遇到的问题是,当我第一次发布此消息时,message.id与某人对该消息做出反应时的response.message.id有所不同,即使它是完全相同的消息。消息的id从消息的发布到用户的反应会发生变化,这有什么原因吗?这是我的密码 async function ReactionRoles(client){ client.on("messageReactionAdd", async (rea

我试图将反应角色编码到我的机器人中,但我在消息ID和反应ID方面遇到了问题。我遇到的问题是,当我第一次发布此消息时,message.id与某人对该消息做出反应时的response.message.id有所不同,即使它是完全相同的消息。消息的id从消息的发布到用户的反应会发生变化,这有什么原因吗?这是我的密码

async function ReactionRoles(client){

    client.on("messageReactionAdd", async (reaction, user) => { 

        acceptablerankemojis = ["Radiant_Valorant", "Immortal_Valorant", "Diamond_Valorant", "Platinium_Valorant", "Gold_Valorant", "Silver_Valorant", "Bronze_Valorant", "Iron_Valorant"]

        if (reaction.message.partial){await reaction.message.fetch()};
        if (reaction.partial){await reaction.fetch()};
        if (user.bot == true) {return};
        if (!reaction.message.guild) {return};
        if (acceptablerankemojis.includes(reaction.emoji.name) == false){
                
            user.send(`**That is not a valid reaction, please only use the reactions listed.**`)
            reaction.remove().catch(error => {

                console.log("There was an error removing the reactions.")
            })
        }

        const getMessage = await reactionScheme.find({

        }, {
    
            name: 1,
            guildId: 1,
            channelId: 1,
            messageId: 1
        })

        getMessage.forEach(async element => {

            console.log("Arrived between")
            console.log(element.messageId)
            console.log(reaction.message.id)
            
            if (element.messageId == reaction.message.id){

                console.log("Arrived2")
                var name = element.name
                var guildId = element.guildId
                switch (name){

                    case "ValorantRanks":
                        switch(guildId){

                            case "814021508052942870":

                                console.log("Arrived 3")
                                const radiantrole = reaction.message.guild.roles.cache.find(role => role.name === "Radiant");
                                const immortalrole = reaction.message.guild.roles.cache.find(role => role.name === "Immortal");
                                const diamondrole = reaction.message.guild.roles.cache.find(role => role.name === "Diamond");
                                const platinumrole = reaction.message.guild.roles.cache.find(role => role.name === "Platinum");
                                const goldrole = reaction.message.guild.roles.cache.find(role => role.name === "Gold");
                                const silverrole = reaction.message.guild.roles.cache.find(role => role.name === "Silver");
                                const bronzerole = reaction.message.guild.roles.cache.find(role => role.name === "Bronze");
                                const ironrole = reaction.message.guild.roles.cache.find(role => role.name === "Iron");
    
                                switch(reaction.emoji.name){

                                    case "Radiant_Valorant":
                                    await reaction.message.guild.members.cache.get(user.id).roles.add(radiantrole)
                                    break
                                    case "Immortal_Valorant":
                                    await reaction.message.guild.members.cache.get(user.id).roles.add(immortalrole)
                                    break
                                    case "Diamond_Valorant":
                                    await reaction.message.guild.members.cache.get(user.id).roles.add(diamondrole)
                                    break
                                    case "Platinium_Valorant":
                                    await reaction.message.guild.members.cache.get(user.id).roles.add(platinumrole)
                                    break
                                    case "Gold_Valorant":
                                    await reaction.message.guild.members.cache.get(user.id).roles.add(goldrole)
                                    break
                                    case "Silver_Valorant":
                                    await reaction.message.guild.members.cache.get(user.id).roles.add(silverrole)
                                    break
                                    case "Bronze_Valorant":
                                    await reaction.message.guild.members.cache.get(user.id).roles.add(bronzerole)
                                    break
                                    case "Iron_Valorant":
                                    await reaction.message.guild.members.cache.get(user.id).roles.add(ironrole)
                                    break
                                }
                            break
                        }
                    break
                }
            }
        });
    })
} 

reactionScheme
的定义是什么?reactionScheme是mongoDB中的一个模式,我使用它来存储guildid、channelid和messageid