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);
}