Доработал немного задачу бота дискорда. Нужно, чтобы при запросе слова !iq выдавалось оповещение, далее по истечении времени появляется еще 2 оповещения в других каналах рабочих тестов. Позже они удаляются. Под двумя из сообщений надо выводить реакцию песочных часов.
Есть 2 проблемы:
1. Реакция не появляется, она появляется только если размещать часы после закрывающего if, но таких if еще несколько для разных видов тестов.
2. В дальнейшем надо назначить при нажатии на эмодзи действие, не очень разобрался, как это действие назначить; думал, добавить кнопками, но это неудобно, и так не подходит.
Не могу понять даже, почему реакции не появляются.
client.on(Events.MessageCreate, async (message) => {
if (message.content === "!iq") {
message.guild.channels.cache.get('1111111111111111111').send("Тест назначен. Время пошло!").then(() => {
message.react('⏳');
message.delete().catch(() => null);
message.guild.channels.cache.get('1111111111111111111').send("Осталось мало времени").then(msg => {
message.react('⏳');
setTimeout(() => msg.delete().catch(() => null), 60000 * 60 * 2);
});
setTimeout(() => {
message.guild.channels.cache.get('1111111111111111111').send("Ваше время почти истекло").then(msg => {
setTimeout(() => msg.delete().catch(() => null), 60000 * 60 * 4)
});
}, 60000 * 60 * 3);
})
}
});