H
HytaleAdminAPI v1.0.0
Zurück

PHP Client Beispiel

PHP Client Beispiel

Ein einfacher PHP-Client für die HytaleAdminAPI.

Basis-Klasse

<?php

class HytaleAdminAPI
{
    private string $baseUrl;

    public function __construct(string $host = 'localhost', int $port = 5550)
    {
        $this->baseUrl = "http://{$host}:{$port}/api";
    }

    public function get(string $endpoint): array
    {
        $ch = curl_init("{$this->baseUrl}{$endpoint}");
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 10,
        ]);
        $response = curl_exec($ch);
        curl_close($ch);
        return json_decode($response, true) ?? [];
    }

    public function post(string $endpoint, array $data = []): array
    {
        $ch = curl_init("{$this->baseUrl}{$endpoint}");
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => json_encode($data),
            CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
            CURLOPT_TIMEOUT => 10,
        ]);
        $response = curl_exec($ch);
        curl_close($ch);
        return json_decode($response, true) ?? [];
    }

    public function delete(string $endpoint): array
    {
        $ch = curl_init("{$this->baseUrl}{$endpoint}");
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_CUSTOMREQUEST => 'DELETE',
            CURLOPT_TIMEOUT => 10,
        ]);
        $response = curl_exec($ch);
        curl_close($ch);
        return json_decode($response, true) ?? [];
    }

    // Convenience methods
    public function getStatus(): array { return $this->get('/status'); }
    public function getPlayers(): array { return $this->get('/players'); }
    public function getStats(): array { return $this->get('/stats'); }
    public function sendChat(string $msg): array { return $this->post('/chat/send', ['message' => $msg]); }
    public function banPlayer(string $player, string $reason = ''): array { return $this->post('/bans/add', ['player' => $player, 'reason' => $reason]); }
}

Verwendung

$api = new HytaleAdminAPI('192.168.1.100', 5550);

// Server-Status
$status = $api->getStatus();
echo "Server: {$status['data']['status']} - Spieler: {$status['data']['players']['online']}/{$status['data']['players']['max']}";

// Spieler auflisten
$players = $api->getPlayers();
foreach ($players['data'] as $player) {
    echo "{$player['name']} - {$player['health']} HP\n";
}

// Chat senden
$api->sendChat('Willkommen auf dem Server!');