Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Status serwera MINECRAFT


Naladar

Rekomendowane odpowiedzi

  • Odpowiedzi 63
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Nie prościej zrobić sobie taką funkcje w php?

 

 

    function QueryMinecraft( $IP, $Port = 25565, $Timeout = 2 )
    {
        $Socket = Socket_Create( AF_INET, SOCK_STREAM, SOL_TCP );
 
        Socket_Set_Option( $Socket, SOL_SOCKET, SO_SNDTIMEO, array( 'sec' => (int)$Timeout, 'usec' => 0 ) );
        Socket_Set_Option( $Socket, SOL_SOCKET, SO_RCVTIMEO, array( 'sec' => (int)$Timeout, 'usec' => 0 ) );
 
        if( $Socket === FALSE || @Socket_Connect( $Socket, $IP, (int)$Port ) === FALSE )
        {
            return FALSE;
        }
 
        Socket_Send( $Socket, "\xFE\x01", 2, 0 );
        $Len = Socket_Recv( $Socket, $Data, 512, 0 );
        Socket_Close( $Socket );
 
        if( $Len < 4 || $Data[ 0 ] !== "\xFF" )
        {
            return FALSE;
        }
 
        $Data = SubStr( $Data, 3 ); // Strip packet header (kick message packet and short length)
        $Data = iconv( 'UTF-16BE', 'UTF-8', $Data );
 
        // Are we dealing with Minecraft 1.4+ server?
        if( $Data[ 1 ] === "\xA7" && $Data[ 2 ] === "\x31" )
        {
            $Data = Explode( "\x00", $Data );
 
            return Array(
                'HostName'   => $Data[ 3 ],
                'Players'    => IntVal( $Data[ 4 ] ),
                'MaxPlayers' => IntVal( $Data[ 5 ] ),
                'Protocol'   => IntVal( $Data[ 1 ] ),
                'Version'    => $Data[ 2 ]
            );
        }
 
        $Data = Explode( "\xA7", $Data );
 
        return Array(
            'HostName'   => SubStr( $Data[ 0 ], 0, -1 ),
            'Players'    => isset( $Data[ 1 ] ) ? IntVal( $Data[ 1 ] ) : 0,
            'MaxPlayers' => isset( $Data[ 2 ] ) ? IntVal( $Data[ 2 ] ) : 0,
            'Protocol'   => 0,
            'Version'    => '1.3'
        );
    }
 
function status($host,$port) {
$array = QueryMinecraft($host,$port);
 
if(empty($array)) {
return Array(
 'host' => $host,
 'port' => $port,
 'status' => "offline",
 );
}else{
$playersOnline = $array["Players"];
$playersMax = $array["MaxPlayers"];
return Array(
 'host' => $host,
 'port' => $port,
 'status' => "online",
 'gracze' =>  $playersOnline,
 'graczeMax' => $playersMax
 
 );
}
 
}
  • 1 miesiąc temu...
  • 2 tygodnie później...
  • 4 tygodnie później...
  • 2 miesiące temu...
  • 3 tygodnie później...
  • 10 miesięcy temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...