📂 File Browser

//serversdashboard/serversdashboard/api
🌙 Dark Mode
🎯 Quick Launch:

📁 Directories

📄 Files

🐘 clientid.php
▶ Open 📄 View Source
🐘 command.php
▶ Open 📄 View Source
🐘 console.php
▶ Open 📄 View Source
🐘 disable.php
▶ Open 📄 View Source
🐘 enable.php
▶ Open 📄 View Source
🐘 inventory.php
▶ Open 📄 View Source
🐘 login.php
▶ Open 📄 View Source
🐘 logout.php
▶ Open 📄 View Source
🐘 players.php
▶ Open 📄 View Source
🐘 restart.php
▶ Open 📄 View Source
🐘 start.php
▶ Open 📄 View Source
🐘 status.php
▶ Open 📄 View Source
🐘 stop.php
▶ Open 📄 View Source
🐘 users.php
▶ Open 📄 View Source
🐘 whoami.php
▶ Open 📄 View Source

📄 Source: players.php

<?php
require_once __DIR__ . '/../auth.php';
require_once __DIR__ . '/../lib/servers.php';
require_once __DIR__ . '/../lib/rcon.php';
require_auth_json();

$CFG = $GLOBALS['__CFG'];
$name = $_GET['server'] ?? '';
if ($name === '' || strpos($name, '/') !== false || strpos($name, '..') !== false) {
    http_response_code(400);
    echo json_encode(['ok' => false, 'error' => 'Invalid server name']);
    exit;
}

$path = server_path($CFG['server_root'], $name);
$rconCfg = rcon_from_properties($path, $CFG['rcon']);

if ($rconCfg['password'] === '') {
    header('Content-Type: application/json');
    echo json_encode([
        'ok'    => false,
        'error' => 'RCON not configured (enable-rcon + rcon.password in server.properties)',
    ]);
    exit;
}

try {
    $r = new Rcon($rconCfg['host'], (int)$rconCfg['port'], $rconCfg['password'], (int)$rconCfg['timeout']);
    $list = $r->command('list');
    $r->close();

    $players = [];
    if (preg_match('/players online:\s*(.*)$/i', $list, $m)) {
        $names = array_filter(array_map('trim', explode(',', $m[1])));
        $players = array_values($names);
    }

    header('Content-Type: application/json');
    echo json_encode([
        'ok'      => true,
        'raw'     => $list,
        'players' => $players,
    ]);
} catch (Throwable $e) {
    header('Content-Type: application/json');
    echo json_encode(['ok' => false, 'error' => $e->getMessage()]);
}
← Back