Status serwera Minecraft.

Założony przez  N1CE.

wersja skryptu MyBB:1.6.9
adres forum:nicexdd.ugu.pl - testowe
na czym polega problem (screen, opis, komunikaty, nazwa stylu/theme/szablonu): Witam, otóż mam małe pytanie, chcę stworzyć mały status serwera minecraft, otóż po szybkim przeszukaniu zasobów internetu poprzez wuja google, odnalazłem coś takiego:

class minecraft_server {

    private $address;
    private $port;

    public function __construct($address, $port = 25565){
        $this->address = $address;
        $this->port = $port;
    }

    public function get_ping_info(&$info){
        $socket = @fsockopen($this->address, $this->port, $errno, $errstr, 1.0);
    
        if ($socket === false){
            return false;
        }
    
        fwrite($socket, "\xfe\x01");
    
        $data = fread($socket, 256);
    
        if (substr($data, 0, 1) != "\xff"){
            return false;
        }
    
        if (substr($data, 3, 5) == "\x00\xa7\x00\x31\x00"){
            $data = explode("\x00", mb_convert_encoding(substr($data, 15), 'UTF-8', 'UCS-2'));
        }else{
            $data = explode('§', mb_convert_encoding(substr($data, 3), 'UTF-8', 'UCS-2'));
        }
    
        if (count($data) == 3){
            $info = array(
                'version'        => '1.3.2',
                'motd'            => $data[0],
                'players'        => intval($data[1]),
                'max_players'    => intval($data[2]),
            );
        }else{
            $info = array(
                'version'        => $data[0],
                'motd'            => $data[1],
                'players'        => intval($data[2]),
                'max_players'    => intval($data[3]),
            );
        }
    
        return true;
    }

}


$server = new minecraft_server('192.168.1.20', 25565);

if (!$server->get_ping_info($info)){
    // oh no server is dead
}else{
    // yay server is alive and you can use $info
    print_r($info);
}
Jest to pewien kod składający się z dwóch części i który podobno po dobrej konfiguracji ma działać :)
I teraz pytanie moje jest takie. Gdzie to mam umieścić aby działało (Chodzi o to gdzie wkleić te kody...) I co wkleić tam gdzie chcę widzieć wyniki "statystyki"(Czyli na głównej stronie forum w panelu bocznym..)

Rozumiem ,że nie każdy może rozumieć moją wypowiedź ale bardzo bym prosił o jakąkolwiek pomoc :)

źródło: http://forums.bukkit.org/threads/help-wo...hp.111783/ (mam nadzieje ,że administracja nie uzna tego za reklamę iż jest to angielskie forum, jeśli tak to proszę o usunięcie linku.)

Pozdrawiam :)
Matslom napisał 11.03.2013, 20:51:
Przenoszę do odpowiedniego działu.
Ja bym do tego polecał GameTracker`a albo coś w tym stylu ;)
Wiesz owszem, ale ja chcę coś oryginalnego. Posiadamy dużą sieć więc to jest trochę nie profesjonalne :P

@ref Pomoże ktoś? Chodzi mi tylko gdzie umieścić te pliki PHP aby działały..
A więc po kolei.
Bawiłem się tym kiedyś i tak. Ta klasa co podałeś, jakoś nie chciała mi działać (na pewno coś robiłem, źle, ale mniejsza z tym)
Pobierz sobie tą klasę do obsługi minequery z githuba https://github.com/xPaw/PHP-Minecraft-Query Będziesz potrzebował w zasadzie tylko pliku MinecraftQuery.class.php
Przykładowy plik, który obsługuję klasę
require __DIR__ '/MinecraftQuery.class.php';

    
$Query = new MinecraftQuery( );

    try
    {
        
$Query->Connect'ip_serwera'25565 );
echo 
'<pre>';
        
print_r$Query->GetInfo( ) );
        
print_r$Query->GetPlayers( ) );
print_r$Query->GetStatus( ));
        echo 
'</pre>';
echo 
'<hr>';
$dane $Query->GetInfo( );
$ip $dane['HostIp'];
echo 
$ip;
    }
    catch( 
MinecraftQueryException $e )
    {
        echo 
$e->getMessage( );
    }
echo 
'<hr>';
$Query->Connect'localhost'25565 );

        
print_r$Query->GetInfo( ) );
        
print_r$Query->GetPlayers( ) ); 
(może trochę pomieszany, ale to nic)
Najlepiej jest to zrobić w formie pluginu.
Podrzucę Ci plugin, który posiada kilkanaście bugów i nie jest skończony, ale myślę, że posłuży Ci za wzór, niech przydadzą się komuś moje wypociny. Podrzucam Ci go na PW pod jednym warunkiem: żadnego dopytywania na temat tego pluginu do mnie na PW.



Użytkownicy przeglądający ten wątek:

1 gości