Suche MC Server Status?

05/14/2013 07:07 Dustin22#1
Guten Morgen,
da ich heute bei meinen Server von WordPress nach WBB gewechselt habe, suche ich einen neuen Server Status. Mein alter Server Status konnte die Spielerzahl, die Namen der Spieler und halt wie viele Slots vorhanden sind anzeigen, nun ist die Frage ob sowas auch geht mit html oder php???
Ich habe nachdem ich gegoogelt habe schon ein kleineren gefunden aber dieser zerstört das halbe Portal wenn der Server offline ist.

Hat jemand eine Ahnung woher ich einen Server Status bekommen kann?=

Gruß
05/14/2013 07:47 Shawak#2
PHP Code:
    function serverInfo($ip$port$timeout) {
        
$fp = @fsockopen($ip$port$errno$errstr$timeout);
        if(!
$fp) {
            return array(
"online" => false"player" => "-""max" => "-");
        }
        
fwrite($fp"\xFE");
        
$answer fread($fp256);
        if (
$answer[0] != "\xFF") {
            
fclose($fp);
            return array(
"online" => false"player" => "-""max" => "-");
        }
        
$text substr($answer3);
        
$text mb_convert_encoding($text'auto''UCS-2');
        
$parts explode("\xA7"$text);
        
fclose($fp);
        return array(
"online" => true"player" => $parts[count($parts)-2], "max" => $parts[count($parts)-1]);
    } 
Beispiel:
PHP Code:
$info serverInfo("url"71711000);
echo 
$info[0]." ".$info[1]."/".$info[2]; 
Sollte so funktionieren, wenn nicht einfach nochmal Bescheid geben.

Lg Shawak
05/14/2013 08:09 Dustin22#3
Ich habe ja nur eine Portalbox und da ich der totale PHP Noob bin, habe ich das was du mir geschrieben hast einfach in die Box gepackt und bei URL die Server IP reingetan.
Das funktioniert aber nicht.
PS: JA PHP ist aktiviert für die Box^^
05/14/2013 08:20 ComputerBaer#4
Ich meine der Port sollte der Port sein, auf dem dein Server läuft.

Kommt irgendein Fehler oder einfach garnichts?

Edit:
Hier gibt es eine fertige Klasse dafür und ein Verwendungsbeispiel ist auch dabei:
[Only registered and activated users can see links. Click Here To Register...]

Und zu meiner Anmerkung oben: Der Port ist frei wählbar, als Standard ist aber 25565 eingestellt.
05/14/2013 08:27 Dustin22#5
Quote:
function serverInfo($ip, $port, $timeout) { $fp = @fsockopen($ip, $port, $errno, $errstr, $timeout); if(!$fp) { return array("online" => false, "player" => "-", "max" => "-"); } fwrite($fp, "\xFE"); $answer = fread($fp, 256); if ($answer[0] != "\xFF") { fclose($fp); return array("online" => false, "player" => "-", "max" => "-"); } $text = substr($answer, 3); $text = mb_convert_encoding($text, 'auto', 'UCS-2'); $parts = explode("\xA7", $text); fclose($fp); return array("online" => true, "player" => $parts[count($parts)-2], "max" => $parts[count($parts)-1]); } $info = serverInfo("178.77.64.210", 7171, 5 * 1000); echo $info[0]." ".$info[1]."/".$info[2];
Das wird in der Box angezeigt.

Zu deinen Link, alle Dateien die dort sind müssen aber auf meinen Webspace sein oder?
05/14/2013 08:45 ComputerBaer#6
Du bräuchtest nur die MinecraftQuery.class.php
Wo genau die auf deinen Webspace muss weis ich nicht, weil ich nicht weis wo und wie WBB die einbinden würde (bzw. in welchem Ordner man sich mit der Box befindet), das muss man ausprobieren.

Wenn das da so angezeigt wird, wird das ganze nicht als PHP sondern als Text verstanden.
Mach mal <?php .... ?> außenrum. Also <?php function serverInfo [...] ".$info[1]."/".$info[2]; ?>
05/14/2013 08:58 Dustin22#7
Wenn ich <?php dahin packe kommt nun der Error:
Parse error: syntax error, unexpected T_FUNCTION, expecting T_STRING in /var/www/web838/html/lib/data/boxes/scripts/customBox12.php on line 1
05/14/2013 09:10 Shawak#8
Quote:
Originally Posted by Dustin22 View Post
Wenn ich <?php dahin packe kommt nun der Error:
Parse error: syntax error, unexpected T_FUNCTION, expecting T_STRING in /var/www/web838/html/lib/data/boxes/scripts/customBox12.php on line 1
Kannst du eventuell mal den Ausschnitt der zeigen und die 5 Zeilen davor/danach?
05/14/2013 09:23 Dustin22#9
Code:
<?php function function serverInfo($ip, $port, $timeout) {
        $fp = @fsockopen($ip, $port, $errno, $errstr, $timeout);
        if(!$fp) {
            return array("online" => false, "player" => "-", "max" => "-");
        }
        fwrite($fp, "\xFE");
        $answer = fread($fp, 256);
        if ($answer[0] != "\xFF") {
            fclose($fp);
            return array("online" => false, "player" => "-", "max" => "-");
        }
        $text = substr($answer, 3);
        $text = mb_convert_encoding($text, 'auto', 'UCS-2');
        $parts = explode("\xA7", $text);
        fclose($fp);
        return array("online" => true, "player" => $parts[count($parts)-2], "max" => $parts[count($parts)-1]);
    } 

$info = serverInfo("178.77.64.210", 7171, 5 * 1000);
echo $info[0]." ".$info[1]."/".$info[2];?>
Das ist der gesamte Code der nun bei dem Error kommt
05/14/2013 09:32 ComputerBaer#10
Ich glaube er meinte die ersten 5 Zeilen aus der customBox12.php

Du solltest den Port (7171) mal durch deinen Port aus den serverproperties ersetzen. (query.port)

Edit:
Du kannst es ja mal so probieren:
Das ist jetzt die Klasse, die ich geschickt hatte. Du kannst den Code einfach so in deine Box einfügen, die Datei wird nicht benötigt.

Wenn das eine einigermaßen vernünftige Ausgabe produziert können wir dir dann auch die richtigen Sachen ausgeben lassen und vielleicht auch noch formatieren. Aber die Arbeit will ich mir erst machen, wenn ich weis das es geht.
05/14/2013 09:41 Dustin22#11
Der Status von dir ComputerBaer funktioniert, nur zeigt er alle Plugins an, was nicht so schön aussieht ;)
Hier was rausskomt:
Quote:
Array ( [HostName] => ~~ MinecraftPower.de ~~ [GameType] => SMP [Version] => 1.5.2 [Plugins] => Array ( [0] => GroupManager 2.0 (2.10.1) (Phoenix) [1] => WorldEdit 5.5.4 [2] => ChatControl 2.1.0 [3] => RankSigns 0.1 [4] => Vault 1.2.24-b304 [5] => PlayerHeads 3.1.0093 [6] => Restarter 1.2 [7] => LogBlock 1.70 [8] => WorldGuard 5.7.3 [9] => ColoredTablist 1.9 [10] => Lottery 1.0 [11] => RocketBoots 0.9.1.2 [12] => iConomy 7.0 [13] => Permissions 3.1.6 [14] => CraftBook 1921-10e0998 [15] => ZavAutoMessager 2.5 [16] => Votifier 1.9 [17] => Essentials Pre2.11.1.2 [18] => EssentialsProtect Pre2.11.1.2 [19] => EssentialsSpawn Pre2.11.1.2 [20] => EssentialsAntiBuild Pre2.11.1.2 [21] => LWC 4.3.2 (b858-git-MANUAL) (March 16, 2013) [22] => dynmap 1.5-612 [23] => ChestShop 3.50-t0059 [24] => EssentialsChat Pre2.11.1.2 [25] => PlotMe 0.13 [26] => Multiverse-Core 2.5-b641 [27] => AuthMe 2.7.12 [28] => Multiverse-Portals 2.4-b548 [29] => AntiCheat 1.5.8 ) [Map] => world [Players] => 1 [MaxPlayers] => 64 [HostPort] => 25565 [HostIp] => 178.77.64.210 [RawPlugins] => CraftBukkit on Bukkit 1.5.2-R0.2-SNAPSHOT: GroupManager 2.0 (2.10.1) (Phoenix); WorldEdit 5.5.4; ChatControl 2.1.0; RankSigns 0.1; Vault 1.2.24-b304; PlayerHeads 3.1.0093; Restarter 1.2; LogBlock 1.70; WorldGuard 5.7.3; ColoredTablist 1.9; Lottery 1.0; RocketBoots 0.9.1.2; iConomy 7.0; Permissions 3.1.6; CraftBook 1921-10e0998; ZavAutoMessager 2.5; Votifier 1.9; Essentials Pre2.11.1.2; EssentialsProtect Pre2.11.1.2; EssentialsSpawn Pre2.11.1.2; EssentialsAntiBuild Pre2.11.1.2; LWC 4.3.2 (b858-git-MANUAL) (March 16, 2013); dynmap 1.5-612; ChestShop 3.50-t0059; EssentialsChat Pre2.11.1.2; PlotMe 0.13; Multiverse-Core 2.5-b641; AuthMe 2.7.12; Multiverse-Portals 2.4-b548; AntiCheat 1.5.8 [Software] => CraftBukkit on Bukkit 1.5.2-R0.2-SNAPSHOT ) Array ( [0] => Arnaen )
05/14/2013 09:54 ComputerBaer#12
Gut, das könne wir jetzt ja bearbeiten.

Sollte ungefähr so sein:
Code:
$Info = $Query->GetInfo( );
echo 'Aktuelle Spielerzahl: ' . $Info['Players'] . '<br />';
echo 'Slots: ' . $Info['MaxPlayers'] . '<br />';
echo 'Spieler: ' . join(', ', $Query->GetPlayers( ))';
Edit:
Du ersetzt diese Zeilen durch den Text oben:
Code:
    print_r( $Query->GetInfo( ) );
    print_r( $Query->GetPlayers( ) );
05/14/2013 10:01 Dustin22#13
Großes Dank an ComputerBaer#
Er hat mir den Server Status gemacht
bitte closen