let announcements = []; const secondsBetweenAnnouncement = 20; let currentAnnouncementIndex = 0; function hideAnnouncements() { $("#nexus-announcements-div").remove(); } function setAnnouncement(index) { const announcement = announcements[index]; if(!announcement) { hideAnnouncements(); return; } const animationsTime = 1000; $("#nexus-announcements-div").fadeOut(animationsTime); setTimeout(() => { if(!announcement) return; const scriptColor = $(".script-name").css("color"); if(announcement.url) { const div = $(` ${announcement.id}

${announcement.message}

`); div.click(function() { $.post(`https://${resName}/nexusAnnouncementClicked`, JSON.stringify({ announcementId: announcement.id })); }); $("#nexus-announcements-div").replaceWith(div).fadeIn(animationsTime); } else { $("#nexus-announcements-div").replaceWith(`
${announcement.id}

${announcement.message}

`).fadeIn(animationsTime); } $("#nexus-announcements-div").find(".btn-close").click((event) => { event.stopPropagation(); markAnnouncementAsHidden(announcement.id); }); $.post(`https://${resName}/nexusAnnouncementSeen`, JSON.stringify({ announcementId: announcement.id })); }, animationsTime); } function processAnnouncements() { currentAnnouncementIndex = (currentAnnouncementIndex + 1) % announcements.length; setAnnouncement(currentAnnouncementIndex); } async function markAnnouncementAsHidden(announcementId) { await $.post(`https://${resName}/nexusMarkAnnouncementAsHidden`, JSON.stringify({ announcementId })); refreshAnnouncements(); } let announcementsIntervalId; async function refreshAnnouncements() { hideAnnouncements(); clearInterval(announcementsIntervalId); announcementsIntervalId = setInterval(processAnnouncements, secondsBetweenAnnouncement * 1000); announcements = await $.post(`https://${resName}/nexusGetAnnouncements`); if(!announcements || announcements.length == 0) return; currentAnnouncementIndex = Math.floor(Math.random() * announcements.length); const div = $(`
`); processAnnouncements() $("#main-bar").prepend(div); }