Javascript Discord.js对原始事件的破坏
期望的结果:将角色分配给对频道中的消息做出反应的用户。在bot上,如果消息不在缓存中,则重新启动该消息,因此未为用户分配角色 问题:代码在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
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);
}
}
}
});