1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
  3. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Лаунчер Система скинов + авторизация через лаунчер

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем byxar, 1 дек 2011.

  1. MOHCTEP

    MOHCTEP Старожил

    Баллы:
    103
    Я его даже не трогал.
     
  2. z0z1ch

    z0z1ch Старожил Девелопер Пользователь

    Баллы:
    123
    Ошибка в скрипте, позже поправлю, замени содержимое на это:
    PHP:
    <?php
    define
    ('INCLUDE_CHECK',true);
    require_once 
    'functions.php';
    include (
    "connect.php");
    $login $_POST['user'];
    $postPass=$_POST['password'];
    $ver=$_POST['version'];
     
            if(
    getGameInfo('launcher') == $ver){
     
                    if (
    $crypt == 'hash_md5' || $crypt == 'hash_authme' || $crypt == 'hash_xauth' || $crypt == 'hash_cauth' || $crypt == 'hash_joomla' || $crypt == 'hash_wordpress' || $crypt == 'hash_dle')
                    {
                        
    $row mysql_fetch_assoc(mysql_query("SELECT $db_columnUser,$db_columnPass FROM $db_table WHERE $db_columnUser='{$_POST['user']}'"));
                        
    $realPass $row[$db_columnPass];
                    }
     
                    if (
    $crypt == 'hash_ipb' || $crypt == 'hash_vbulletin')
                    {
                        
    $row mysql_fetch_assoc(mysql_query("SELECT $db_columnUser,$db_columnPass,$db_columnSalt FROM $db_table WHERE $db_columnUser='{$_POST['user']}'"));
                        
    $realPass $row[$db_columnPass];
                        
    $salt $row[$db_columnSalt];
                    }
                     
                    if (
    $crypt == 'hash_xenforo')
                    {
                        
    $row mysql_fetch_assoc(mysql_query("SELECT $db_table.$db_columnId,$db_table.$db_columnUser,$db_tableOther.$db_columnId,$db_tableOther.$db_columnPass FROM $db_table$db_tableOther WHERE $db_table.$db_columnId = $db_tableOther.$db_columnId AND $db_table.$db_columnUser='{$_POST['username']}'"));
                        
    $realPass substr($row[$db_columnPass],22,64);
                        
    $salt substr($row[$db_columnPass],105,64);
                    }
     
                        if (
    $realPass)
                        {
                            
    $checkPass $crypt();
                         
                            if(
    strcmp($realPass,$checkPass) == 0)
                            {
                                
    $sessid generateSessionId();
                                
    $gamebuild=getGameInfo('build');
                                
    mysql_query("UPDATE $db_table SET $db_columnSesId='$sessid' WHERE $db_columnUser = '$login'") or die ("Запрос к базе завершился ошибкой.");
                                
    $dlticket md5($login);
                                echo 
    $gamebuild.':'.$dlticket.':'.$login.':'.$sessid.':';
                            }
                            else
                            {
                                echo 
    "Bad login";
                            }
                        }
                    else {
                        echo 
    "Bad login";
                        }
            }
            else{
                echo 
    'Old version';
                }
    ?>
     
  3. MOHCTEP

    MOHCTEP Старожил

    Баллы:
    103
    Э наверное я тебя сейчас удивлю, но ничего не изменилось
     
  4. z0z1ch

    z0z1ch Старожил Девелопер Пользователь

    Баллы:
    123
    @MOHCTEP, скинь весь скрипт авторизации и загрузки скинов который ты используешь ( архивом), пароль к бд можешь затереть
     
  5. MOHCTEP

    MOHCTEP Старожил

    Баллы:
    103
  6. z0z1ch

    z0z1ch Старожил Девелопер Пользователь

    Баллы:
    123
  7. MOHCTEP

    MOHCTEP Старожил

    Баллы:
    103
    =(( ничего
     
    I-Am-Black-Overlord нравится это.
  8. z0z1ch

    z0z1ch Старожил Девелопер Пользователь

    Баллы:
    123
    Какой путь до файла авторизации в лаунчере прописан?
     
  9. MOHCTEP

    MOHCTEP Старожил

    Баллы:
    103
  10. z0z1ch

    z0z1ch Старожил Девелопер Пользователь

    Баллы:
    123
    Так хорошо.
    Какой адрес ты вводишь в браузере для открытия страницы загрузки скинов?
     
  11. MOHCTEP

    MOHCTEP Старожил

    Баллы:
    103
  12. z0z1ch

    z0z1ch Старожил Девелопер Пользователь

    Баллы:
    123
    Короче...
    Удали все скрипты которые у тебя есть, скачай еще раз все с гитхаба (пофиксил ошибку) https://github.com/byxar/MinecraftSkinSystem/zipball/master
    Скопируй содержимое папки "system_forums(based on byxar's edition)" туда где у тебя были скрипты.
    Настрой файл connect.php и config.php
    В клиенте путь к файлу авторизации http://127.0.0.1/auth.php при условии что скрипт смены скинов доступен по адресу http://127.0.0.1
     
  13. MOHCTEP

    MOHCTEP Старожил

    Баллы:
    103
    Вот теперь все ок. Спасибо что помог докопаться до истины =)).
     
    Black-UK-Lord нравится это.
  14. alukar

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

    Баллы:
    68
    Имя в Minecraft:
    alukar
    Подскажите как этот скрипт подружить с кирилицой ?
     
  15. RESTART

    RESTART Активный участник

    Баллы:
    63
    Имя в Minecraft:
    Kriper
    Не пойму в чем дело указываю коннект выдаёт Невозможно установить соединение с базой данных! всё указал правильно может я штото не так делаю хз смотрим вложенный вайл. Есле нетрудно добавьте в скайп rzubov98
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      242 КБ
      Просмотров:
      79
  16. Elecman

    Elecman Активный участник

    Баллы:
    63
    Всем привет. У меня возник такой вопрос: Смогу ли я войти на сервер через лаунчер (ввод логина и пароля), если:
    1) Использую базу регистрации игроков с IP - 1.2.3.4
    2) А сервер стоит на машине с IP - 4.3.2.1
    То есть, будет связь через сайт и с сайта на серверную машину?
     
  17. Автор темы
    byxar

    byxar Старожил Девелопер

    Баллы:
    103
    посмотри внимательно на скрин, ошибка очевидна.
    должно работать, если к базе открыт доступ из вне
     
  18. Elecman

    Elecman Активный участник

    Баллы:
    63
    Ммм...когда захожу через лаунчер, твои исходники, то при входе на сервер кричит Bad Login
     
  19. alukar

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

    Баллы:
    68
    Имя в Minecraft:
    alukar
    @Elecman,
    Значит что то неправильно сделал.
     
  20. Elecman

    Elecman Активный участник

    Баллы:
    63
    Вдохновляющий ответ:D
    Ладно, скажу понятнее:
    1) Что мы делаем, мы скачиваем MCP 5.0 и декомпилируем клиент.
    [​IMG]
    2) Отлично, клиент декомпилировали, идем в папку mcp50\src\minecraft\net\minecraft\src
    И ищем 2 файла: NetClientHandler.java, ThreadCheckHasPaid.java (С версии 1.0.0)
    NetClientHandler.java
    Далее, ищем строчку http://session.minecraft.net/game/joinserver.jsp?user=
    В моем случае, я прописал http://www.mysite.ru/auth/joinserver.php?user=
    ThreadCheckHasPaid.java
    3) Все сделали, сохраняем. Идем в папку MCP 5.0 запускаем recompile.bat, а после reobfuscate.bat.
    4) После этого идем в папку mcp50\reobf\minecraft - > Там видим файлы abp.class, hr.class
    5) Идем в папку с нашим клиентом Minecraft, открываем minecraft.jar, кидаем туда наши измененныe файлы abp.class, hr.class и удаляем папку META-INF
    6) Далее в лаунчере, меняем все как по гайду: [ГАЙД]
    В моем случае я менял:

    Код:
    public void login(String userName, String password) {
        try {
          String parameters = "user=" + URLEncoder.encode(userName, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + "&version=" + 13;
          String result = Util.excutePost("http://www.mysite.ru/auth/auth.php", parameters);
          if (result == null) {
            showError("Невозможно подключится к серверу!");
            loginForm.setNoNetwork();
            return;
          }
          if (!result.contains(":")) {
            if (result.trim().equals("Bad login")) {
              showError("Неправильный логин или пароль!");
            } else if (result.trim().equals("Old version")) {
              loginForm.setOutdated();
              showError("Нужно обновить лаунчер!");
            } else {
              showError(result);
            }
            loginForm.setNoNetwork();
            return;
          }
          String[] values = result.split(":");
     
          launcher = new Launcher();
          launcher.customParameters.putAll(customParameters);
          launcher.customParameters.put("userName", values[2].trim());
          launcher.customParameters.put("latestVersion", values[0].trim());
          launcher.customParameters.put("downloadTicket", values[1].trim());
          launcher.customParameters.put("sessionId", values[3].trim());
          launcher.init();
     
          removeAll();
          add(launcher, "Center");
          validate();
          launcher.start();
          loginForm.loginOk();
          loginForm = null;
          setTitle("Minecraft");
        } catch (Exception e) {
          e.printStackTrace();
          showError(e.toString());
          loginForm.setNoNetwork();
        }
      }

    7) Далее, возьмем файл ThreadLoginVerifier.class из сервера craftbukkit-1.0.1-R1.jar (В моем случае)
    Изменим: http://session.minecraft.net/game/checkserver.jsp?user=
    На (В моем случае) http://www.mysite.ru/auth/joinserver.php?user=
    8) Закинем обратно в сервер и проверим работоспособнность!
    Эх...
    [​IMG]
    Прошу помочь!
    P.S. Сайт и сервер на двух разных машинах. На сайте удаленное использование mysql разрешено
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      64,9 КБ
      Просмотров:
      62
    Сникерсни и SuperHanz нравится это.

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