Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Нужно сделать вывод игроков онлайн с помощью AuthMe и phpMyAdmin

Тема в разделе "Помощь", создана пользователем DonMK, 26 май 2015.

  1. Левый

    Левый Старожил Пользователь

    Баллы:
    173
    Skype:
    malhenko26
    Имя в Minecraft:
    Lefty
    Твой phpmyadmin с сайтом, часом не на хостингере стоит?
     
  2. Хостинг MineCraft
    <
  3. mr.max_maxim

    mr.max_maxim Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MAXIMDELAET
    Вот норм
    <?php

    class Server {
    /**
    * @var string name of itself for testing
    */
    public static $classname = 'Server';

    /**
    * Queries a Minequery server.
    *
    * @Static
    * @param string $address The address to the Minequery server.
    * @param int $port The port of the Minequery server.
    * @param int $timeout The time given before the connection attempt gives up.
    * @return array|bool An array on success, FALSE on failure.
    */
    public static function query($address, $port = 25566, $timeout = 30) {
    global $db;

    $query = array();

    $write = "QUERY\n";

    $class = self::$classname;

    $response = $class::read($address, $port, $errno, $errstr, $timeout, $write, $latency);

    if (false === $response) {
    return false;
    }

    $response = explode("\n", $response);


    // Server port
    $query['serverPort'] = explode(" ", $response[0], 2);
    $query['serverPort'] = $query['serverPort'][1];

    // Player count
    $query['playerCount'] = explode(" ", $response[1], 2);
    $query['playerCount'] = $query['playerCount'][1];

    // Max players
    $query['maxPlayers'] = explode(" ", $response[2], 2);
    $query['maxPlayers'] = $query['maxPlayers'][1];

    // Record players
    $stm = $db->query("SELECT * FROM `online_record`");
    $rec = $stm->fetch(PDO::FETCH_ASSOC);
    $record = $rec['record'];
    if($query['playerCount'] > $record){$db->query("UPDATE `online_record` SET `record`='{$query['playerCount']}' WHERE `record`={$record}");}
    $query['record'] = $record;

    // Player list
    list(, $buffer) = explode(" ", $response[3], 2);
    $buffer = trim($buffer, "[] ");
    $query['playerList'] = $buffer ? explode(", ", $buffer) : array();

    $query['latency'] = $latency;

    return $query;
    }

    /**
    * Queries a Minequery server using JSON.
    *
    * @Static
    * @param string $address The address to the Minequery server.
    * @param int $port The port of the Minequery server.
    * @param int $timeout The time given before the connection attempt gives up.
    * @return object|bool A stdClass object on success, FALSE on failure.
    */
    public static function query_json($address, $port = 25566, $timeout = 30) {
    $beginning_time = microtime(true);

    $socket = @fsockopen($address, $port, $errno, $errstr, $timeout);

    if (!$socket) {
    // Could not establish a connection to the server.
    return false;
    }

    $end_time = microtime(true);

    fwrite($socket, "QUERY_JSON\n");

    $response = "";

    while (!feof($socket)) {
    $response .= fgets($socket, 1024);
    }

    $query = json_decode($response);
    $query->latency = ($end_time - $beginning_time) * 1000;

    return $query;
    }

    /**
    * Queries a Remote Socket
    *
    * @Static
    * @param string $address The address to the Minequery server.
    * @param int $port The port of the Minequery server.
    * @param int $errno
    * @param string $errstr
    * @param int $timeout The time given before the connection attempt gives up.
    * @param string $write
    * @param int $latency
    * @return string|bool An string on success, FALSE on failure.
    */
    protected static function read($address, $port, &$errno, &$errstr, $timeout, $write, &$latency) {
    $latency = NULL;

    $beginning_time = microtime(true);

    $socket = @fsockopen($address, $port, $errno, $errstr, $timeout);

    if (!$socket) {
    // Could not establish a connection to the server.
    return false;
    }

    $end_time = microtime(true);

    $latency = ($end_time - $beginning_time) * 1000;

    fwrite($socket, $write);

    $response = "";

    while (!feof($socket)) {
    $response .= fgets($socket, 1024);
    }

    return $response;
    }
    }
    ?>
     
  4. GameBoy

    GameBoy Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    GameBoy
    А это тут при чём?
     
  5. Левый

    Левый Старожил Пользователь

    Баллы:
    173
    Skype:
    malhenko26
    Имя в Minecraft:
    Lefty
    Потому что на хостингере не работают мониторинги.
     
  6. mr.max_maxim

    mr.max_maxim Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MAXIMDELAET
    На хостингере нету удалённого доступа к бд!!!
     
  7. SANTAGENS

    SANTAGENS Активный участник Пользователь

    Баллы:
    61
    некропостер =)
    у меня всё проще :ninja: (Thermos-1.7.10-1614-58) и вынь сервер
    чисто для себя и друзей(и их друзей) потому линьку ставить не стал
    да и познаний java маловато чтоб написать плагин
    потому использовал вот такой вариант на консоли (bat)
    for /f "tokens=5" %%i in ('find /i "Сейчас" "logs\latest.log"') do set /a onl=%%i &echo online %%i >online.txt
    if 0==%onl% (echo - >players.txt
    ) else (
    for /f "tokens=5 delims=:" %%i in ('find /i "Players:" "logs\latest1.log"') do echo %%i >players.txt)
    правда тут не обошлось без плагина AutoSaveWorld
    intervalmode:
    enabled: true
    intervals:
    '60':
    - online
    недостаток только в том что он каждую минуту спамит в консоль
    и записывает максимум только 100 никнеймов в онлайне
    вот и всё что хотелось сказать увидев эту тему
    прошу не ругать - я ведь без плохих мыслей
     
  8. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Держи, все что тебе остается, это прочитать js скриптом. https://cloud.mail.ru/public/3niW7k3UykCp/Мои плагины/Exemple-server/
    А 2 веерсия, это уже полноценный мониторинг на плагине, но без ников игроков.
     
  9. SANTAGENS

    SANTAGENS Активный участник Пользователь

    Баллы:
    61
    спасибо :good:
     

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