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

Веб [1.1|0.2 + RSS]MCWLauncher (Web-часть)

Discussion in 'Веб-обвязки и лаунчеры' started by danilko, Sep 27, 2014.

  1. Автор темы
    danilko

    danilko Старожил Пользователь

    Trophy Points:
    103
    Ну вот я и выкладываю web-часть для "кусочного" скачивания клиента с сайта.

    Перейдем сразу к делу.
    Настройки скрипта(config.php):
    client_dir - папка с клиентом (распакованным client.zip), можно не менять.
    cache_dir - папка с кешем (кешированные блоки), можно не менять.
    block_size - размер 1 блока(по умолчанию 1 МБайт), тут нужно сбалансировать, при слишком маленьких значениях лаунчер посылает много запросов и так можно случайно заддосить сайт, при слишком больших значениях кеш может занять много места на диске, лучше использовать размер по умолчанию.
    cache_enabled - использовать кеш или нет. можно отключить, если вы не хотите, чтобы создавался кеш.(сэкономит дисковое пространство за счет уменьшения времени отклика) ПРИ ИЗМЕНЕНИИ ЭТОГО ПАРАМЕТРА ОБЯЗАТЕЛЬНО ЧИСТИТЬ КЕШ СКРИПТА

    Создание кеша:
    1. После загрузки скрипта на сайт открываем download.php в браузере, если вы увидете только надпись "err", значит все ОК.
    2. Далее закидываем содержимое client.zip в папку client (client_dir)
    3. Удаляем папку "cache", если таковая имеется (мало ли что там лишнего)
    4. Настраиваем лаунчер (см. ниже) и запускаем скачивание
    Если у вас хостинг с ограничением по нагрузке на процессор (напр. hostinger), то при создании кеша нужно следить за нагрузкой на сервер и при приближении к максимуму убивать процесс лаунчера (при закрытии окна процесс завершится только после окончания загрузки), хотя можно и не следить, но тогда сайт может быть закрыт на некоторое время, при этом лаунчер будет ждать пока сайт снова станет доступен. А лучше по возможности создать кеш на локальной машине, а позже закинуть на сайт.

    Настройка лаунчера:
    Находим строчку вида "launcher.startDownload('http://mcwl.esy.es/server/',1,'HTTP_MT');" в страничке-дизайне, где http://mcwl.esy.es/server/ меняем на путь до папки с файлом download.php (наличие http:// в начале и / в конце обязательно ), а 1 меняем на id вашего сервера (с сайта mcwl.esy.es, позже и ссылки на скачивание тоже будут браться оттуда, нужен будет тольк id сервера и режим скачивания), режим ("HTTP_MT") в нашем случае менять не надо.
    Далее нужно убедиться, что лаунчер настроен верно (в id.txt верный id лаунчера и все ссылки верны)
    Вот и все, нужнае файлы лежат в прикрепленном архиве, если возникнут вопросы - задавайте их ниже.

    Настраиваем импорт новостей по RSS. (По умолчанию всего 5 новостей, длина "кратой новости" 80 символов, пока обрезка идет "тупая", позже сделаю чтоб до конца предложения или хотя-бы слова обрезало)
    В архиве должен быть файл news.php, если его нет, то создаем новый.
    Далее убираем все, что есть в этом файле и вставляем туда следующий код:
    PHP:
    <?php
    $rss_link 
    "http://www.vesti.ru/vesti.rss";
    $rss_mode false;
    if(
    $rss_mode){
    $news = array(
        array(
    "title"=>"Пробная новость 1","content"=>"Содержимое пробной новости"),
        array(
    "title"=>"Пробная новость 2","content"=>"Содержимое пробной новости"),
        array(
    "title"=>"Пробная новость 3","content"=>"Содержимое пробной новости"),
        array(
    "title"=>"Пробная новость 4","content"=>"Содержимое пробной новости")
    );
    $ret "";
    foreach(
    $news as $post){

        
    ob_start();
        eval(
    "?><h3><?=\$post['title'];?></h3><p><?=\$post['content'];?></p><a href=\"#\">Подробнее</a>");
        
    $ret .= ob_get_clean();//str_replace("'","&#8242;",str_replace('"',"&#8243;",ob_get_clean()));

    }

    ?>
    }else{
    $xml = xml_parser_create();
    xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE,1);
    xml_parse_into_struct($xml, file_get_contents($rss_link), $el, $fe);
    xml_parser_free($xml);
    //print_r($fe);
    //print_r($el);
    ob_start();
    for($i=0; $i<5; $i++){
       $m = $fe['ITEM'][$i];
       $title = $el[$m+1]['value'];
       $link = $el[$m+2]['value'];
       $time = $el[$m+4]['value'];
       $desc = mb_substr( $el[$m+3]['value'], 0, 80, 'UTF-8');
       //echo '<br/><strong>'.$title.'</strong> <br/>['.$time.']<br/>'.$desc.'<br/><a href="'.$link.'">читать...</a>';
       echo "<h3>".$title."</h3><p>".$desc."</p><a href='".$link."'>Подробнее<a>";
    }
    $ret .= ob_get_clean();
    }
    ?>

    <script>
    parent.document.getElementById("news").innerHTML = '<div style="position: inherit; height: inherit; overflow:auto" onmousedown="canmove = false;" onmouseup="canmove = true;"><?=$ret?></div>';
    </script>
    Для включения импорта rss заменяем "$rss_mode = false;" на "$rss_mode = true;" и на место "http://www.vesti.ru/vesti.rss" вставляете ссылку на нужный rss канал, после этого в оформлении лаунчера меняем ссылку с "http://mcwl.esy.es/server/news.php" на ссылку до вашего news.php. После этого ваш лаунчер будет выводить новости из указанного rss канала.

    Дополнительные ссылки:
    Тема с лаунчером: http://www.rubukkit.org/threads/78493/
    UPD: новая версия с поддержкой HTTP_MT_ZIP прикреплена к посту, файл server_2.zip
    UPD: поддержка RSS новостей (Спасибо @General за идею)
     

    Attached Files:

    Last edited: Oct 15, 2014
  2. Хостинг MineCraft
    <
  3. KPbIWKA

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

    Trophy Points:
    68
    Имя в Minecraft:
    KPbIWKA
    Не особо понял для чего это тут....:confused:
     
  4. Автор темы
    danilko

    danilko Старожил Пользователь

    Trophy Points:
    103
    Для лаунчера, просто в отдельную тему вынес веб часть.
     
  5. STRELOK2022

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

    Trophy Points:
    88
    Skype:
    blogofcoder
    Имя в Minecraft:
    STRELOK2022
    Зачем?
     
  6. Автор темы
    danilko

    danilko Старожил Пользователь

    Trophy Points:
    103
    Захотелось мне так )
    Я потом буду наращивать функционал и для решения вопросов конкретно по обвязке и нужна будет эта тема.
     
  7. mc-luxe

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

    Trophy Points:
    88
    Имя в Minecraft:
    Hello
    Чувак, у тя есть будущее, со следущей версии, начинай авторизацией :3
     
  8. Автор темы
    danilko

    danilko Старожил Пользователь

    Trophy Points:
    103
    Это сарказм был или нет?)
    Я сейчас сразу CMS делаю чтоб потом не связывать по отдельности кучу отдельных скриптов.
     
  9. mc-luxe

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

    Trophy Points:
    88
    Имя в Minecraft:
    Hello
    Та не, просто говорю займись более функциональным лаунчером, (такие как, Sashok724, JCR), надо помнить, что время изготовления лаунчера покажет его великолепие.
     
  10. Автор темы
    danilko

    danilko Старожил Пользователь

    Trophy Points:
    103
    UPD добавлена поддержка rss новостей.[DOUBLEPOST=1414933161,1413400293][/DOUBLEPOST]Итак, я добрался до разработки веб-части :)
    Пишите чего сделать, что добавить, сегодня, надеюсь, уже какую-нибудь бетку сделаю.[DOUBLEPOST=1414955621][/DOUBLEPOST]Бетки сегодня не будет...[DOUBLEPOST=1414956203][/DOUBLEPOST]В общем взял за основу свою старую cms "MSC: WebSite Engine" и начал смотреть что вообще там есть, ну и собственно кроме кучи костылей и багов ничего путного не нашел )
    Но нашел пару интересных багов при исправлении которых система просто падает или начинает себя вести не так как должна)
    Сейчас поставил себе задачу исправить все баги, в том числе "магические" и оптимизировать все. (Да ещё и вытащить из БД половину системы)
    P.s. Ну я и наговнокодил :)
     

Share This Page