Spaces:
Running
Running
| document.addEventListener("DOMContentLoaded", () => { | |
| setupProfile(); | |
| setupServerEmbeds(); | |
| }); | |
| // Initialize profile based on cookies | |
| function setupProfile() { | |
| const profileNameElem = document.getElementById("profile-name"); | |
| const username = getCookie("username"); | |
| if (username) { | |
| profileNameElem.textContent = username; | |
| } | |
| const modMakerKitEnabled = getCookie("modMakerKitEnabled"); | |
| const modMakerItem = document.getElementById("modMakerItem"); | |
| const apiItem = document.getElementById("apiItem"); | |
| if (modMakerKitEnabled === "true") { | |
| modMakerItem.style.display = "flex"; | |
| apiItem.style.display = "flex"; | |
| } else { | |
| modMakerItem.style.display = "none"; | |
| apiItem.style.display = "none"; | |
| } | |
| } | |
| // Setup server embeds with lazy loading | |
| function setupServerEmbeds() { | |
| const servers = [ | |
| "wss://zentic.cc", | |
| "mc.arch.lol", | |
| "wss://mc.zyth.me", | |
| "wss://asianf4rmer.minecraft.pe", | |
| "wss://hoosiertransfer.xyz", | |
| "wss://eg.cloudwars.club", | |
| "wss://mc.firenetwork.lol", | |
| "wss://deercraft.ddns.net", | |
| "wss://sus.shhnowisnottheti.me", | |
| "wss://mc.asspixel.net/", | |
| "wss://aeon-network.net/1.8", | |
| ]; | |
| const embedContainer = document.getElementById("embed"); | |
| embedContainer.style.display = "flex"; | |
| embedContainer.style.flexWrap = "wrap"; | |
| const fragment = document.createDocumentFragment(); | |
| servers.forEach(server => { | |
| const serverDiv = createServerEmbed(server); | |
| fragment.appendChild(serverDiv); | |
| lazyLoadServerEmbed(serverDiv, server); | |
| }); | |
| embedContainer.appendChild(fragment); | |
| } | |
| // Create a server embed div | |
| function createServerEmbed(server) { | |
| const serverDiv = document.createElement("div"); | |
| serverDiv.className = "server-embed"; | |
| const serverInfoDiv = document.createElement("div"); | |
| serverInfoDiv.style.display = "flex"; | |
| serverInfoDiv.style.flexDirection = "row"; | |
| serverInfoDiv.style.alignItems = "center"; | |
| serverInfoDiv.style.marginBottom = "10px"; | |
| const ipSpan = document.createElement("span"); | |
| ipSpan.textContent = `${server} (Server Embed Below) ↓`; | |
| const copyButton = document.createElement("button"); | |
| copyButton.textContent = "Copy IP"; | |
| copyButton.classList.add("minecraft-button"); | |
| copyButton.addEventListener("click", () => copyServerIP(server)); | |
| serverInfoDiv.appendChild(ipSpan); | |
| serverInfoDiv.appendChild(copyButton); | |
| serverDiv.appendChild(serverInfoDiv); | |
| return serverDiv; | |
| } | |
| // Lazy load server embed | |
| function lazyLoadServerEmbed(serverDiv, server) { | |
| const observer = new IntersectionObserver((entries, observer) => { | |
| entries.forEach(entry => { | |
| if (entry.isIntersecting) { | |
| new ServerEmbed(serverDiv, "75%").ping(server); | |
| observer.unobserve(entry.target); | |
| } | |
| }); | |
| }, { threshold: 0.1 }); | |
| observer.observe(serverDiv); | |
| } | |
| // Copy server IP to clipboard | |
| function copyServerIP(server) { | |
| navigator.clipboard.writeText(server) | |
| .then(() => { | |
| alert("IP address copied to clipboard: " + server); | |
| }) | |
| .catch(err => { | |
| console.error("Failed to copy: ", err); | |
| }); | |
| } | |
| // Get cookie value by name | |
| function getCookie(name) { | |
| const cookieArr = document.cookie.split(";"); | |
| for (let i = 0; i < cookieArr.length; i++) { | |
| const cookiePair = cookieArr[i].split("="); | |
| if (name === cookiePair[0].trim()) { | |
| return decodeURIComponent(cookiePair[1]); | |
| } | |
| } | |
| return null; | |
| } | |