File size: 3,067 Bytes
b25c766
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// 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 = `
            <div class="console-output"></div>
            <input type="text" class="console-input" placeholder="Enter command...">
        `;
        
        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 += `<div>> ${command}</div>`;
                    
                    // 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 += `<div class="text-emerald-400">${response}</div>`;
                    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');
        });
    });
}