Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб Мониторинг minecraft серверов на PHP+HTML+CSS

logo
 
Поддержка Spigot сервера, вырезка из моего кода.

PHP:
$socket=@fsockopen($ips, $ports);
if($socket!==false){@fwrite($socket,"\xFE");
$data=@fread($socket,256);@fclose($socket);
if($data==false or substr($data,0,1)!="\xFF")return;
{$info=substr($data,3);$info=iconv('UTF-16BE','UTF-8',$info);
if($info[1]==="\xA7"&&$info[2]==="\x31"){
    $info=explode("\x00",$info);
    $version=strval($info[2]);
    $CurPlayers=intval($info[4]);
    $MaxPlayers=intval($info[5]);
} else {
    $info = explode("\xA7",$info);
    $CurPlayers=intval($info[1]);
    $MaxPlayers=intval($info[2]);}
}}
 
Поддержка Spigot сервера, вырезка из моего кода.

PHP:
$socket=@fsockopen($ips, $ports);
if($socket!==false){@fwrite($socket,"\xFE");
$data=@fread($socket,256);@fclose($socket);
if($data==false or substr($data,0,1)!="\xFF")return;
{$info=substr($data,3);$info=iconv('UTF-16BE','UTF-8',$info);
if($info[1]==="\xA7"&&$info[2]==="\x31"){
    $info=explode("\x00",$info);
    $version=strval($info[2]);
    $CurPlayers=intval($info[4]);
    $MaxPlayers=intval($info[5]);
} else {
    $info = explode("\xA7",$info);
    $CurPlayers=intval($info[1]);
    $MaxPlayers=intval($info[2]);}
}}
Хоть подсказал-бы какой Endif заменить...
Хоть подсказал-бы какой Endif заменить...
Не работает, заменил два IfА сверху.

<?php
/**
Второй файл из бесплатного комплекта скрипта онлайна Minecraft-сервера.

Код написан на PHP. При короших знаниях вы можете целиком изменить его.
Однако, если вы плохо разбираетесь в PHP, я советую вам изменять только строчки, помеченные моими комментариями с символом "@" в начале.
**/

// Инклудим конфиг-файл...
include('vanillaconfig.php');

class MinecraftStatus {
private $Socket, $Info;
public $Online, $MOTD, $CurPlayers, $MaxPlayers, $IP, $Port, $Error;

public function __construct($IP) { //@ Если в настройках сервера стоит нестандартный порт (стандартный - 25565), измените параметр слева.
// Инклудим конфиг-файл...
include('vanillaconfig.php');

$this->IP = $IP;
$this->Port = $Port;

// Удаляем все протоколы из адреса сервера.
if(preg_match('/(.*):\/\//', $this->IP)) {
$this->IP = preg_replace('/(.*):\/\//', '', $this->IP);
}
if(strpos($this->IP, '/') !== false) {
$this->IP = rtrim($this->IP, '/');
if(strpos($this->IP, '/') !== false) {
$this->Failed();
$this->Error = 'Unsupported IP/Domain format, no \'/\'s allowed';
return;
}
}
if(preg_match_all('/:/', $this->IP, $matches) > 1) {
unset($matches);
// IP6
if(strpos($this->IP, '[') === false && strpos($this->IP, ']') === false)
$this->IP = '['.$this->IP.']';
} else if(strpos($this->IP, ':') !== false) {
$this->Failed();
$this->Error = 'Unsupported IP/Domain format';
return;
}
$this->Online = true;
$socket=@fsockopen($ips, $ports);
if($socket!==false){@fwrite($socket,"\xFE");
$data=@fread($socket,256);@fclose($socket);
if($data==false or substr($data,0,1)!="\xFF")return;
{$info=substr($data,3);$info=iconv('UTF-16BE','UTF-8',$info);
if($info[1]==="\xA7"&&$info[2]==="\x31"){
$info=explode("\x00",$info);
$version=strval($info[2]);
$CurPlayers=intval($info[4]);
$MaxPlayers=intval($info[5]);
} else {
$info = explode("\xA7",$info);
$CurPlayers=intval($info[1]);
$MaxPlayers=intval($info[2]);}
}}}
public function Info() {
return array(
'MOTD' => $this->MOTD,
'CurPlayers' => $this->CurPlayers,
'MaxPlayers' => $this->MaxPlayers
);
}


private function Failed() {
$this->MOTD = false;
$this->CurPlayers = false;
$this->MaxPlayers = false;
}
}
?>
 
Народ, я понимаю, не по теме, но не могу найти... Никто не видел исходы мониторинга на C++ или других высоких ЯП (Желательно не java) ???
 
Последнее редактирование:

Поделиться этой страницей

Назад
Верх