#discord.js
#discord.js
Вопрос:
Как я могу кэшировать сообщения в discord.js ? Я хотел создать систему ролей реакции, но событие для добавления реакций работает только для кэшированных сообщений. Я помещаю этот код в функцию «готово»:
bot.channels.cache.get(channel id).messages.cache.get(message id)
Это не работает, событие по-прежнему не запускается.
Я делаю что-то не так?
Ответ №1:
Вы можете принудительно кэшировать сообщения через MessageManager#fetch
.
// with promises
bot.channels.cache
.get('channel id')
.messages.fetch('message id')
.then(() => {
console.log(`The message has been cached`);
});
// with async/await (make sure your function is async)
await bot.channels.cache.get('channel id').messages.fetch('message id');
console.log(`The message has been cached`);
Комментарии:
1. бот даже больше не запускается (я использую heroku)
2. неважно, удаление части ожидания исправляет это. Спасибо!
3. Рад, что смог помочь. Если мой ответ решил вашу проблему, пожалуйста, отметьте его как принятый, чтобы в будущем его было легче найти другим пользователям, которые разделяют вашу проблему.