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

Веб Плагин статус сервера для livestreet.

Делать ли подобные плагины?

MrFallen

Активный участник
Пользователь
Баллы
88
Многие говорят, что я ни чего не делаю, а если делаю, то за деньги.
А как известно, любая работа должна быть оплачена.
Плагин писало 2 людей. (Я и мой знакомый)
Поблагодарить нас можно по этим реквизитам:
Вот Мой реквизит: http://livestreetcms.com/profile/MrFallen/donate/
Вот его реквизит: http://livestreetcms.com/profile/chiliec/donate/

Вот плагин для LiveStreet 0.5.1:
Minecraft Status - Скачать. (Плагин прошел модерацию)

Обсуждение плагина GamerPress.Ru и LiveStreet.Ru.

Плагин выводит блок статус игрового сервера Minecraft.
В конфиге можно отредактировать IP адрес сервера.
Отдельная благодарность Chiliec, за то что помог упаковать в плагин.

Команда GamerPress.Ru​
 
Такую работу проделал, а комментов почти нет. Неужели больше нет пользователей LiveStreet?
 
Такую работу проделал, а комментов почти нет. Неужели больше нет пользователей LiveStreet?

y_b0e4ca72.jpg
 
Что-то знакомое в скрипте,полагаю ты написал с другом всё?:fp:
Код:
<?
class MinecraftStatus {
    private $Socket, $Info;
    public $Online, $MOTD, $CurPlayers, $MaxPlayers, $IP, $Port, $Error;
 
    public function __construct($IP, $Port = '25565') {
        $this->IP = $IP;
        $this->Port = $Port;
     
        // Remove any protocols from serveraddress
        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;
        }
     
        if($this->Socket = @stream_socket_client('tcp://'.$this->IP.':'.$Port, $ErrNo, $ErrStr, 1)) {
            // If IP6 remove brackets
            if(strpos($this->IP, '[') === 0 && strpos($this->IP, ']') === (strlen($this->IP) - 1))
                $this->IP = trim($this->IP, '[]');
         
            $this->Online = true;
         
            fwrite($this->Socket, "\xfe");
            $Handle = fread($this->Socket, 2048);
            $Handle = str_replace("\x00", '', $Handle);
            $Handle = substr($Handle, 2);
            $this->Info = explode("\xa7", $Handle); // Separate Infos
            unset($Handle);
            fclose($this->Socket);
         
            if(sizeof($this->Info) == 3) {
                $this->MOTD      = $this->Info[0];
                $this->CurPlayers = (int)$this->Info[1];
                $this->MaxPlayers = (int)$this->Info[2];
                $this->Error      = false;
            } else if(sizeof($this->Info) > 3) { // Handle error, Minecraft don't handle this.
                $Temp = '';
                for($i = 0; $i < sizeof($this->Info) - 2; $i++) {
                    $Temp .= ($i > 0 ? '§' : '').$this->Info[$i];
                }
                $this->MOTD      = $Temp;
                $this->CurPlayers = (int)$this->Info[sizeof($this->Info) - 2];
                $this->MaxPlayers = (int)$this->Info[sizeof($this->Info) - 1];
                $this->Error      = 'Faulty motd or outdated script';
            } else {
                $this->Failed();
                $this->Error      = 'Unexpected error, cause may be an outdated script';
            }
        } else {
            $this->Online = false;
            $this->Failed();
            $this->Error = 'Can not reach the server';
        }
    }
 
    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;
    }
}
?>
 
Что-то знакомое в скрипте,полагаю ты написал с другом всё?:fp:
Код:
<?
class MinecraftStatus {
    private $Socket, $Info;
    public $Online, $MOTD, $CurPlayers, $MaxPlayers, $IP, $Port, $Error;
 
    public function __construct($IP, $Port = '25565') {
        $this->IP = $IP;
        $this->Port = $Port;
   
        // Remove any protocols from serveraddress
        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;
        }
   
        if($this->Socket = @stream_socket_client('tcp://'.$this->IP.':'.$Port, $ErrNo, $ErrStr, 1)) {
            // If IP6 remove brackets
            if(strpos($this->IP, '[') === 0 && strpos($this->IP, ']') === (strlen($this->IP) - 1))
                $this->IP = trim($this->IP, '[]');
       
            $this->Online = true;
       
            fwrite($this->Socket, "\xfe");
            $Handle = fread($this->Socket, 2048);
            $Handle = str_replace("\x00", '', $Handle);
            $Handle = substr($Handle, 2);
            $this->Info = explode("\xa7", $Handle); // Separate Infos
            unset($Handle);
            fclose($this->Socket);
       
            if(sizeof($this->Info) == 3) {
                $this->MOTD      = $this->Info[0];
                $this->CurPlayers = (int)$this->Info[1];
                $this->MaxPlayers = (int)$this->Info[2];
                $this->Error      = false;
            } else if(sizeof($this->Info) > 3) { // Handle error, Minecraft don't handle this.
                $Temp = '';
                for($i = 0; $i < sizeof($this->Info) - 2; $i++) {
                    $Temp .= ($i > 0 ? '§' : '').$this->Info[$i];
                }
                $this->MOTD      = $Temp;
                $this->CurPlayers = (int)$this->Info[sizeof($this->Info) - 2];
                $this->MaxPlayers = (int)$this->Info[sizeof($this->Info) - 1];
                $this->Error      = 'Faulty motd or outdated script';
            } else {
                $this->Failed();
                $this->Error      = 'Unexpected error, cause may be an outdated script';
            }
        } else {
            $this->Online = false;
            $this->Failed();
            $this->Error = 'Can not reach the server';
        }
    }
 
    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;
    }
}
?>
Скрипт я нашёл на Github он нам не подходил нам пришлось его править. Самой сложной частью было упаковать в плагин, то что мы и сделали.
 
Всё не можем определиться с промо страницей. Наш дизайнер нарисовал в Photoshop ещё одну страничку. Думаю скоро сверстать.
 

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

Назад
Верх