Javascript Discord.js对原始事件的破坏

Javascript Discord.js对原始事件的破坏,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,期望的结果:将角色分配给对频道中的消息做出反应的用户。在bot上,如果消息不在缓存中,则重新启动该消息,因此未为用户分配角色 问题:代码在guildID=client.guilds.get(packet.d.guild\u id)之后停止响应 客户端已在脚本开始时定义 预期输出:返回guildID并将角色添加到做出反应的用户 跟随 client.on('raw',packet=>{ 如果(!['MESSAGE\u REACTION\u ADD'、'MESSAGE\u REACTION\u REM

期望的结果:将角色分配给对频道中的消息做出反应的用户。在bot上,如果消息不在缓存中,则重新启动该消息,因此未为用户分配角色

问题:代码在guildID=client.guilds.get(packet.d.guild\u id)之后停止响应 客户端已在脚本开始时定义

预期输出:返回guildID并将角色添加到做出反应的用户

跟随

client.on('raw',packet=>{
如果(!['MESSAGE\u REACTION\u ADD'、'MESSAGE\u REACTION\u REMOVE'])包括(packet.t))返回;
如果(!(packet.d.channel_id==='')返回;
//控制台日志(数据包);
guildID=client.guilds.get(packet.d.guild\u id);
if(packet.t==='MESSAGE\u REACTION\u ADD'){
控制台日志(“添加”);
如果(packet.d.emoji.name==)⭐') {
试一试{
guildID.members.cache.get(packet.d.user_id).roles.add(“”).catch()
}捕获(错误){
console.log(错误);
}
}
}
if(packet.t==='MESSAGE\u REACTION\u REMOVE'){
控制台日志(“删除”);
}

})尝试使用这些替代方法来使用

guildID=client.guilds.get(packet.d.guild_id);
这种错误的获取
guild的方法自discord.jsv12更新以来,它将是
guildID=client.guilds.cache.get(packet.d.guild_id);

client.on('messageReactionAdd',(reaction,user)=>{
console.log('已添加反应');
});
client.on('messageReactionRemove',(reaction,user)=>{
console.log(“已删除一个反应”);
});

尝试使用这些替代方法来使用

guildID=client.guilds.get(packet.d.guild_id);
这种错误的获取
guild的方法自discord.jsv12更新以来,它将是
guildID=client.guilds.cache.get(packet.d.guild_id);

client.on('messageReactionAdd',(reaction,user)=>{
console.log('已添加反应');
});
client.on('messageReactionRemove',(reaction,user)=>{
console.log(“已删除一个反应”);
});
解决了这个问题

client.on('raw', async (packet) => {
    if (!['MESSAGE_REACTION_ADD',   'MESSAGE_REACTION_REMOVE'].includes(packet.t)) return;
    if (!(packet.d.channel_id === '800423226294796320')) return;

    guild = client.guilds.cache.get(packet.d.guild_id);

    if (packet.t === 'MESSAGE_REACTION_ADD') {
        console.log("ADDED");
        if (packet.d.emoji.name === '⭐') {
            try {
                member = await guild.members.fetch(packet.d.user_id);
                role = await guild.roles.cache.find(role => role.name === 'star');
                member.roles.add(role);
            } catch (error) {
                console.log(error);
            }
        }
    }
    if (packet.t === 'MESSAGE_REACTION_REMOVE') {
        console.log("REMOVED");
        if (packet.d.emoji.name === '⭐') {
            try {
                member = await guild.members.fetch(packet.d.user_id);
                role = await guild.roles.cache.find(role => role.name === 'star');
                member.roles.remove(role);
            } catch (error) {
                console.log(error);
            }
        }
    }
});
用这个解决了

client.on('raw', async (packet) => {
    if (!['MESSAGE_REACTION_ADD',   'MESSAGE_REACTION_REMOVE'].includes(packet.t)) return;
    if (!(packet.d.channel_id === '800423226294796320')) return;

    guild = client.guilds.cache.get(packet.d.guild_id);

    if (packet.t === 'MESSAGE_REACTION_ADD') {
        console.log("ADDED");
        if (packet.d.emoji.name === '⭐') {
            try {
                member = await guild.members.fetch(packet.d.user_id);
                role = await guild.roles.cache.find(role => role.name === 'star');
                member.roles.add(role);
            } catch (error) {
                console.log(error);
            }
        }
    }
    if (packet.t === 'MESSAGE_REACTION_REMOVE') {
        console.log("REMOVED");
        if (packet.d.emoji.name === '⭐') {
            try {
                member = await guild.members.fetch(packet.d.user_id);
                role = await guild.roles.cache.find(role => role.name === 'star');
                member.roles.remove(role);
            } catch (error) {
                console.log(error);
            }
        }
    }
});