// keeps track of how many events have been displayed let count = 1; $(document).ready(function () { /* Expand alias tab if they have any */ $('#profile_aliases_btn').click(function (e) { const aliases = $('#profile_aliases').text().trim(); if (aliases && aliases.length !== 0) { $('#profile_aliases').slideToggle(150); } }); /* load the initial 40 events */ $.each(clientInfo.Meta, function (index, meta) { if (meta.key.includes("Event")) { loadMeta(meta); if (count % 40 === 0) { count++; return false; } count++ } }); /* load additional events on scroll */ $(window).scroll(function () { if ($(window).scrollTop() === $(document).height() - $(window).height() || $(document).height() === $(window).height()) { while (count % 40 !== 0 && count < clientInfo.Meta.length) { loadMeta(clientInfo.Meta[count - 1]); count++; } count++; } }); /* load meta thats not an event */ $.each(clientInfo.Meta, function (index, meta) { if (!meta.key.includes("Event")) { let metaString = `
${meta.value} ${meta.key}
`; $("#profile_meta").append(metaString); } }); /* get ip geolocation info into modal */ $('.ip-locate-link').click(function (e) { e.preventDefault(); const ip = $(this).data("ip"); $.getJSON("http://ip-api.com/json/" + ip) .done(function (response) { $('.modal-title').text(ip); $('.modal-body').text(""); $('.modal-body').append("ASN — " + response["as"] + "
"); $('.modal-body').append("ISP — " + response["isp"] + "
"); $('.modal-body').append("Organization — " + response["org"] + "
"); $('.modal-body').append("Location — " + response["city"] + ", " + response["regionName"] + ", " + response["country"] + "
"); $('#mainModal').modal(); }); }); }); function penaltyToName(penaltyName) { switch (penaltyName) { case "Flag": return "Flagged" case "Warning": return "Warned"; case "Report": return "Reported"; case "Ban": return "Banned"; case "Kick": return "Kicked"; case "TempBan": return "Temp Banned"; case "Unban": return "Unbanned"; } } function loadMeta(meta) { let eventString = ''; // it's a penalty if (meta.class.includes("Penalty")) { if (meta.value.punisherId !== clientInfo.clientId) { eventString = `
${penaltyToName(meta.value.type)} by ${meta.value.punisherName} for ${meta.value.offense} ${meta.whenString} ago
`; } else { eventString = `
${penaltyToName(meta.value.type)} ${meta.value.offenderName} for ${meta.value.offense} ${meta.whenString} ago
`; } } // it's a message else if (meta.key.includes("Event")) { eventString = `
> ${meta.value}
`; } $('#profile_events').append(eventString); }