#node.js #discord #discord.js
#node.js #Discord #discord.js
Вопрос:
Итак, ребята, я на самом деле не новичок в программировании ботов в discord.js но теперь я увидел, что когда я перезапускаю своего бота, он не может обнаружить старые сообщения.
Это мой код:
client.on("messageReactionAdd", (reaction, user) => {
if(reaction.emoji.name == "✅" amp;amp; 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');
}
}
});
Язык не имеет значения, но проблема в том, что я перепробовал все способы кэширования старых сообщений с определенного канала. Но я не могу найти способ сделать это.
Ответ №1:
Вы можете проверить, является ли реакция частичной или нет, используя <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
});
Вы можете ознакомиться с документами здесь для этого, и вот fetch()
метод. Этот пример кода взят из руководства DJS, которое можно найти здесь