Server status a MOTD

Technická podpora pro naše hostované weby
Message
Autor
Uživatelský avatar
ABYSI!DORANA!
Příspěvky: 248
Věk: 34
Registrován: 23 úno 2013, 00:09
Reputation: 0

Server status a MOTD

#1 Příspěvekod ABYSI!DORANA! » 14 kvě 2013, 01:58

Caute mam taky mensi problemik s jednym skriptom... Mam zakupeny serveru tu od FH konkretne 93.91.250.137:27312
jedna sa o hungergames server, na ktorom s automaticky pocas hrania meni MOTD...
cize pred zacatim hry vypise Pripoj sa, hra zacne za 4 minuty [priklad], pocas hrania HG vypisuje server cez MOTD - Hra prave prebieha, pripoj sa neskor.
Vsetko toto som nahodil na jeden skript ktory som nasiel nahodou na nete, a chcel by som aby mi zobrazovalo STAV,IP,MOTD,POCET HRACOV
vsetko by to malo fungovat podla toho skriptu, len po nahodeni mi vypisuje len STAV, IP, POCET HRACOV [nezobrazuje max]

ukazka-
serverrr.jpg
serverrr.jpg (13.44 KiB) Zobrazeno 3326 x


Cize co potrebujem? Zobrazovanie MOTD a pocet hracov online/max- aby to fungovalo ako ma

hodim vam sem ten php skript... tento php subor potom uz mam zvlast vsunuty do dalsej php stranky

status.php
Spoiler: zobrazit

Kód: Vybrat vše

<table class="table table-bordered table-striped">
<thead>
<tr> <th>Status</th> <th>IP</th> <th>Detaily</th>  <th>Hraci</th> </tr>
</thead>
<tbody>


         <?php
            include "mcserverstatus.php";
            include "config.php";
            $tonline = 0;
            foreach ($servers as $server) {
               if (strpos($server, ':') !== false) {
                  $parts = explode(':', $server);
                  $port = $parts[1];
               }
               else {
                  $port = '25565';
               }
               $s = new MCServerStatus($server, $port);
               if($s->online) {
                  if($s->motd == $server_motd_progress) {
                     $status = '<span class="badge badge-warning"><i class="icon-play icon-white"></i></span>';
                     $motd = "Game is in progress.";
                  } else {
                     $status = '<span class="badge badge-success"><i class="icon-ok icon-white"></i></span>';
                     $motd = $s->motd;
                  }
               } else {
                  $status = '<span class="badge badge-important"><i class="icon-remove icon-white"></i></span>';
                  $motd = 'Server currently offline.';
               }
               
               $players = ($s->online_players) ? $s->online_players : 0 ;
               $max_players = ($s->max_players) ? $s->max_players : 0 ;
               $tonline += $players;
               echo "<tr>";
               echo "<td style='vertical-align:central'>".$status."</td>";
               echo "<td><code>".$server."</code></td>";
               echo "<td class='motd'>".$motd."</td>";
               echo "<td>".$players."/".$max_players."</td>";
               echo "</tr>";
            }
         ?>
</tbody>
</table>



config.php
Spoiler: zobrazit

Kód: Vybrat vše

<?php

//WEBSITE VARS
$title = "Hunger Games Server";
$desc = "by sp.";

//SERVER VARS
$servers = array("93.91.250.137:27312");
$server_motd_progress = "Hra prave prebieha.";

//MYSQL VARS
$sql_host = "jedi.fakaheda.eu";
$sql_user = "122644_mysql_db";
$sql_pass = "************";
$sql_database = "122644_mysql_db";

//How many rows do you want to see?
$limit = 10;


//DON'T EDIT ANYTHING BEYOND HERE
include "parse.php";
?>

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: Server status a MOTD

#2 Příspěvekod Mysteria » 14 kvě 2013, 10:18

V tomhle chyba není, ta bude někde ve výkoném kódy, tedy mcserverstatus.php nebo parse.php, každopádně nebylo by lepší tohle psát na podporu daného skriptu?

Uživatelský avatar
ABYSI!DORANA!
Příspěvky: 248
Věk: 34
Registrován: 23 úno 2013, 00:09
Reputation: 0

Re: Server status a MOTD

#3 Příspěvekod ABYSI!DORANA! » 14 kvě 2013, 14:40

No praveze to neviem kde je ofic stranka, bo to bolo len ulozene na neakom ulozisku pre scripty

mozem sem hodit aj hentie ostate...

mcserverstatus.php
Spoiler: zobrazit

Kód: Vybrat vše

<?php
/*

author: redwallhp


*/

class MCServerStatus {
   
   
public $server;
public $online, $motd, $online_players, $max_players;
public $error = "OK";



function __construct($url, $port = '25565') {

$this->server = array(
"url" => $url,
"port" => $port
);

if ( $sock = @stream_socket_client('tcp://'.$url.':'.$port, $errno, $errstr, 1) ) {

$this->online = true;

fwrite($sock, "\xfe");
$h = fread($sock, 2048);
$h = str_replace("\x00", '', $h);
$h = substr($h, 2);
$data = explode("\xa7", $h);
unset($h);
fclose($sock);

if (sizeof($data) == 3) {
$this->motd = $data[0];
$this->online_players = (int) $data[1];
$this->max_players = (int) $data[2];
}
else {
$this->error = "Cannot retrieve server info.";
}

}
else {
$this->online = false;
$this->error = "Cannot connect to server.";
}

}
}
?>




parse.php
Spoiler: zobrazit

Kód: Vybrat vše

<?php

if(!function_exists('error')) {
function error($msg) {
?>
<html>
<head>
<meta charset="utf-8">
<title>Error!</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="bootstrap/css/custom.css" rel="stylesheet">
</head>
<body>
<div class="container"> <br />
  <div class="alert alert-error"> <strong>Error!</strong> Check your config.php!</div>
  <code><?php echo $msg; ?></code> </div>
</body>
</html>
<?php   
die();
}
}

mysql_connect($sql_host, $sql_user, $sql_pass) or error(mysql_error());
mysql_select_db($sql_database) or error(mysql_error());

if(!isset($servers) or !isset($server_motd_progress))
   error("$servers or $server_motd_progress is not set!");
?>



dokonca som dneska videl na jednom nemenovanom servery, nechcem tu robit reklamu- a mal tam tento script,a vsetko fungovalo v pohode...

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: Server status a MOTD

#4 Příspěvekod Mysteria » 14 kvě 2013, 15:24

Osobně bych to viděl na nějaký problém v mcserverstatus.php, přesněji v získávání dat ze serveru.
Ten skript může být kdoví jak starej a mohlo se něco změnit přímo v MC, takže to už nemusí být funkční.
Jak to opravit nevím, vždycky jsme pro práci s RCON používal taktéž externí třídy.

Uživatelský avatar
ABYSI!DORANA!
Příspěvky: 248
Věk: 34
Registrován: 23 úno 2013, 00:09
Reputation: 0

Re: Server status a MOTD

#5 Příspěvekod ABYSI!DORANA! » 14 kvě 2013, 19:28

A nevedel by si o neakom skripte /funkcnom/ ktory by ukazoval MOTD serveru? to by mi uplne stacilo... lebo co som nasiel aj tu na podpore FH, tak bolo len pocet hracov, nazov serveru, a tie vsetky informacie co su aj v control panely.. mne by stacilo klasicky aby mi vypisalo len MOTD...

Uživatelský avatar
Mysteria
Příspěvky: 9122
Registrován: 26 pro 2009, 15:40
Reputation: 7
Bydliště: Česká republika
Kontaktovat uživatele:

Re: Server status a MOTD

#6 Příspěvekod Mysteria » 14 kvě 2013, 22:33

Nevím co přesně myslíš tím MOTD, protože MC neznám, ale tu třída co já používám je klasickej RCOn, tzn pošleš příkaz a on ti vrátí data. Pokud lze takto získaz i ten MOTD, tak by to teoreticky mohlo fungovat. Používám tuhle: http://pastebin.com/dDPP6AMg
Případně není třeba tohle to co potřebuješ? https://github.com/xPaw/PHP-Minecraft-Query


Zpět na „Web hosting“

Kdo je online

Uživatelé prohlížející si toto fórum: Google [Bot] a 3 hosti