// Shared functionality document.addEventListener('DOMContentLoaded', () => { // Initialize tooltips if (feather) { feather.replace(); } // Handle authentication state const authToken = localStorage.getItem('authToken'); if (authToken) { document.querySelectorAll('.auth-required').forEach(el => { el.classList.remove('hidden'); }); document.querySelectorAll('.guest-only').forEach(el => { el.classList.add('hidden'); }); } }); // Simulate console functionality for demo function setupConsole(consoleId) { const consoleElement = document.getElementById(consoleId); if (consoleElement) { consoleElement.innerHTML = `
`; const output = consoleElement.querySelector('.console-output'); const input = consoleElement.querySelector('.console-input'); input.addEventListener('keydown', (e) => { if (e.key === 'Enter') { const command = input.value.trim(); if (command) { // Simulate command processing output.innerHTML += `
> ${command}
`; // Simulate response (in a real app, this would come from the server) let response = ''; if (command.startsWith('ban ')) { response = `Player ${command.substring(4)} has been banned.`; } else if (command === 'help') { response = 'Available commands: ban, op, kick, say, help'; } else { response = 'Unknown command. Type "help" for a list of commands.'; } output.innerHTML += `
${response}
`; input.value = ''; output.scrollTop = output.scrollHeight; } } }); } } // Initialize tooltips function initTooltips() { const tooltipElements = document.querySelectorAll('[data-tooltip]'); tooltipElements.forEach(el => { const tooltipText = el.getAttribute('data-tooltip'); const tooltip = document.createElement('div'); tooltip.className = 'absolute z-10 hidden bg-gray-800 text-white px-2 py-1 rounded text-sm whitespace-nowrap'; tooltip.textContent = tooltipText; el.appendChild(tooltip); el.addEventListener('mouseenter', () => { tooltip.classList.remove('hidden'); const rect = el.getBoundingClientRect(); tooltip.style.top = `${rect.top - 30}px`; tooltip.style.left = `${rect.left + rect.width / 2 - tooltip.offsetWidth / 2}px`; }); el.addEventListener('mouseleave', () => { tooltip.classList.add('hidden'); }); }); }