📂 File Browser

//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: clientid.php

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

$CFG = $GLOBALS['__CFG'];
$server = $_GET['server']  ?? '';
$player = $_GET['player']  ?? '';

if ($server === '' || strpos($server, '/') !== false || strpos($server, '..') !== false) {
    http_response_code(400);
    echo json_encode(['ok' => false, 'error' => 'Invalid server name']);
    exit;
}
if ($player === '' || strlen($player) > 32) {
    http_response_code(400);
    echo json_encode(['ok' => false, 'error' => 'Invalid player name']);
    exit;
}

$path = server_path($CFG['server_root'], $server);

try {
    $modsRaw  = clientid_rcon($path, $CFG, "/clientid viewmods $player");
    $packsRaw = clientid_rcon($path, $CFG, "/clientid viewpacks $player");

    $mods  = clientid_parse_mods($modsRaw);
    $packs = clientid_parse_packs($packsRaw);

    $baselineMods  = $CFG['clientid_expected_mods']  ?? [];
    $baselinePacks = $CFG['clientid_expected_packs'] ?? [];

    $extraMods  = clientid_filter_mods($mods, $baselineMods);
    $extraPacks = clientid_filter_packs($packs, $baselinePacks);

    header('Content-Type: application/json');
    echo json_encode([
        'ok'             => true,
        'player'         => $player,
        'mods_all'       => $mods,
        'mods_extra'     => $extraMods,
        'packs_all'      => $packs,
        'packs_extra'    => $extraPacks,
        'baseline_count' => count($baselineMods),
    ]);
} catch (Throwable $e) {
    header('Content-Type: application/json');
    echo json_encode(['ok' => false, 'error' => $e->getMessage()]);
}
← Back