// Simulated admin data - this would be replaced with actual game data let adminData = { players: [ { id: 1, name: "John_Doe", rank: 5, money: 50000, status: "online" }, { id: 2, name: "Jane_Smith", rank: 3, money: 25000, status: "online" }, { id: 3, name: "Mike_Johnson", rank: 1, money: 10000, status: "offline" } ], paydayAmounts: { 1: 1000, // Rank 1 (Player) payday amount 2: 2000, // Rank 2 payday amount 3: 3000, // Rank 3 payday amount 4: 4000, // Rank 4 payday amount 5: 5000 // Rank 5 (Admin) payday amount }, maxRank: 5 }; let selectedPlayerId = null; // Initialize the admin panel function initializeAdmin() { updateStats(); setupFilterListeners(); updatePlayerList(); } // Update header statistics function updateStats() { const onlinePlayers = adminData.players.filter(p => p.status === "online").length; const onlineStaff = adminData.players.filter(p => p.status === "online" && p.rank > 1).length; document.getElementById('playerCount').textContent = onlinePlayers; document.getElementById('staffCount').textContent = onlineStaff; } // Set up filter button listeners function setupFilterListeners() { const filterButtons = document.querySelectorAll('.filter-btn'); filterButtons.forEach(button => { button.addEventListener('click', () => { filterButtons.forEach(btn => btn.classList.remove('active')); button.classList.add('active'); filterPlayers(button.dataset.filter); }); }); // Set up search functionality const searchInput = document.getElementById('playerSearch'); searchInput.addEventListener('input', () => { const activeFilter = document.querySelector('.filter-btn.active').dataset.filter; filterPlayers(activeFilter, searchInput.value); }); } // Filter players based on category and search term function filterPlayers(filter, searchTerm = '') { let filteredPlayers = adminData.players; // Apply category filter if (filter === 'online') { filteredPlayers = filteredPlayers.filter(p => p.status === 'online'); } else if (filter === 'staff') { filteredPlayers = filteredPlayers.filter(p => p.rank > 1); } // Apply search filter if (searchTerm) { const term = searchTerm.toLowerCase(); filteredPlayers = filteredPlayers.filter(p => p.name.toLowerCase().includes(term) ); } updatePlayerList(filteredPlayers); } // Update the player list display function updatePlayerList(players = adminData.players) { const playerList = document.getElementById('playerList'); playerList.innerHTML = players.map(player => { const paydayAmount = adminData.paydayAmounts[player.rank] || 1000; // Default to 1000 if rank not found return `
${player.name} Rank ${player.rank} $${player.money.toLocaleString()} Payday: $${paydayAmount.toLocaleString()}
${player.rank < adminData.maxRank ? ` ` : ''} ${player.rank > 1 ? ` ` : ''}
`}).join(''); } // Rank management functions function promotePlayer(playerId) { const player = adminData.players.find(p => p.id === playerId); if (player && player.rank < adminData.maxRank) { player.rank++; updatePlayerList(); } } function demotePlayer(playerId) { const player = adminData.players.find(p => p.id === playerId); if (player && player.rank > 1) { player.rank--; updatePlayerList(); } } // Money management functions function openMoneyModal(playerId) { selectedPlayerId = playerId; const modal = document.getElementById('moneyModal'); modal.style.display = 'block'; } function closeMoneyModal() { const modal = document.getElementById('moneyModal'); modal.style.display = 'none'; document.getElementById('moneyAmount').value = ''; selectedPlayerId = null; } function giveMoney() { const amount = parseInt(document.getElementById('moneyAmount').value); if (amount && selectedPlayerId) { const player = adminData.players.find(p => p.id === selectedPlayerId); if (player) { player.money += amount; updatePlayerList(); closeMoneyModal(); } } } function takeMoney() { const amount = parseInt(document.getElementById('moneyAmount').value); if (amount && selectedPlayerId) { const player = adminData.players.find(p => p.id === selectedPlayerId); if (player) { player.money = Math.max(0, player.money - amount); updatePlayerList(); closeMoneyModal(); } } } // Message system functions function openMessageModal(playerId) { selectedPlayerId = playerId; const player = adminData.players.find(p => p.id === playerId); const modal = document.getElementById('messageModal'); document.getElementById('messagePlayerName').textContent = player.name; modal.style.display = 'block'; } function closeMessageModal() { const modal = document.getElementById('messageModal'); modal.style.display = 'none'; document.getElementById('messageInput').value = ''; selectedPlayerId = null; } function sendPlayerMessage() { const message = document.getElementById('messageInput').value; if (message && selectedPlayerId) { const player = adminData.players.find(p => p.id === selectedPlayerId); if (player) { console.log(`Message sent to ${player.name}: ${message}`); closeMessageModal(); } } } function broadcastMessage() { const message = document.getElementById('broadcastMessage').value; if (message) { console.log(`Broadcasting message to all players: ${message}`); document.getElementById('broadcastMessage').value = ''; } } // Global actions function Payday() { const amount = parseInt(document.getElementById('paydayAmount').value); if (amount) { adminData.players.forEach(player => { player.money += amount; }); updatePlayerList(); } } // Initialize when DOM is loaded document.addEventListener('DOMContentLoaded', initializeAdmin);