伙计们,我并不是在 discord.js 中进行机器人编程的真正初学者,但是,我现在已经看到,当我重新启动我的机器人时,它无法检测到旧消息。
这是我的代码:
client.on("messageReactionAdd", (reaction, user) => {
if(reaction.emoji.name == "✅" && reaction.message.channel.id === '793528912751231015') {
try {
const role = reaction.message.channel.guild.roles.cache.find(role => role.name == "『?♂️』אזרח");
reaction.message.guild.member(user).roles.add(role);
} catch {
console.log('Error : can\'t add the role');
}
}
});
语言无关紧要,但问题是 T 尝试了各种方法来缓存来自特定频道的旧消息。但我真的找不到办法做到这一点。
答案 0 :(得分:0)
您可以使用 <Reaction>.partial
属性检查反应是否是部分反应。如果它是部分的,那么我们可以调用 reaction.fetch();
这是一个例子:
client.on('messageReactionAdd', async (reaction, user) => {
if (reaction.partial) {
try {
await reaction.fetch();
} catch (error) {
return console.error("Error fetching reaction", error);
}
}
// Your code here
});