function copyIp() { const ipText = document.getElementById('server-ip').innerText; const tooltip = document.getElementById('copy-tooltip'); navigator.clipboard.writeText(ipText).then(() => { tooltip.innerText = "已复制!"; tooltip.classList.add('show'); setTimeout(() => { tooltip.classList.remove('show'); setTimeout(() => { tooltip.innerText = "点击复制 IP"; }, 200); // Wait for fade out }, 2000); }).catch(err => { console.error('无法复制文本: ', err); tooltip.innerText = "复制失败"; tooltip.classList.add('show'); setTimeout(() => { tooltip.classList.remove('show'); }, 2000); }); } // Dynamic Subtitle Rotation const SUBTITLES = [ '纯净', '原版', '生存', '养老', '休闲' ]; let currentSubtitleIndex = 0; function initDynamicSubtitle() { const dynamicElement = document.getElementById('dynamic-subtitle'); if (!dynamicElement) return; // Set initial subtitle dynamicElement.textContent = SUBTITLES[0]; dynamicElement.classList.add('fade-enter-active'); // Start rotation setInterval(() => { // Fade out dynamicElement.classList.remove('fade-enter-active'); dynamicElement.classList.add('fade-exit-active'); setTimeout(() => { // Change text currentSubtitleIndex = (currentSubtitleIndex + 1) % SUBTITLES.length; dynamicElement.textContent = SUBTITLES[currentSubtitleIndex]; // Fade in dynamicElement.classList.remove('fade-exit-active'); dynamicElement.classList.add('fade-enter-active'); }, 500); }, 4000); // Change every 4 seconds } // Sponsors Logic document.addEventListener('DOMContentLoaded', () => { initDynamicSubtitle(); fetchSponsors(); fetchCrowdfunding(); // setupModal(); // Removed, modal is gone fetchServerStatus(); startRuntimeTimer(); }); function startRuntimeTimer() { const startTime = new Date("2021-09-14T09:57:59").getTime(); function update() { const now = new Date().getTime(); const diff = now - startTime; const days = Math.floor(diff / (1000 * 60 * 60 * 24)); const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)); const seconds = Math.floor((diff % (1000 * 60)) / 1000); const daysEl = document.getElementById("runtime-days"); const hoursEl = document.getElementById("runtime-hours"); const minutesEl = document.getElementById("runtime-minutes"); const secondsEl = document.getElementById("runtime-seconds"); if (daysEl) daysEl.innerText = days; if (hoursEl) hoursEl.innerText = hours; if (minutesEl) minutesEl.innerText = minutes; if (secondsEl) secondsEl.innerText = seconds; } update(); setInterval(update, 1000); } async function fetchServerStatus() { const countElement = document.getElementById('online-count'); const listElement = document.getElementById('players-list'); const dotElement = document.querySelector('.status-dot'); try { const response = await fetch('https://api.mcstatus.io/v2/status/java/mcpure.lunadeer.cn'); const data = await response.json(); if (data.online) { countElement.innerText = `在线人数: ${data.players.online} / ${data.players.max}`; dotElement.classList.remove('offline'); if (data.players.list && data.players.list.length > 0) { listElement.innerHTML = data.players.list.map(player => `