Я пытаюсь создать собственную систему тикетов для моего сервера Discord с помощью моего Discord. js bot. Если пользователь реагирует на определенное сообщение с помощью эмодзи ?, я хочу, чтобы он сначала немедленно удалил реакцию, а затем продолжил. Таким образом, в основном количество реакций остается на 1 (единственное, что было у моего бота). Проблема в том, что если я перезапускаю бота и реагирую на сообщение, он не удаляет мою реакцию, однако, когда я вручную удаляю его и повторяю попытку, он работает!
Вот мой код:
client.on("messageReactionAdd", async (messageReaction, user) => {
if (messageReaction.partial) {
try {
await messageReaction.fetch();
} catch (error) {
console.log("couldn't fetch message1", error);
}
}
let msg = messageReaction.message;
if (msg.id === config.support_msg_id) {
const userReactions = msg.reactions.cache.filter(reaction => reaction.users.cache.has(user.id));
try {
for (const reaction of userReactions.values()) {
await reaction.users.remove(user.id);
}
} catch (error) {
console.error('Failed to remove reactions.');
}
}
});