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

В каком файле изменяется сообщение bad login и user not premium?

Тема в разделе "[Архив] Помощь", создана пользователем limon_4eg, 10 фев 2012.

  1. SuperHanz

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

    Баллы:
    88
    Тоже интересно, в файлах авторизации bad login не изменяется
     
  2. Хостинг MineCraft
    <
  3. MrTNTCat

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

    Баллы:
    63
    Имя в Minecraft:
    MrTNTCat
    Типичный русский форум, тебе не дают ответ, тебе долго говорят почему ты мудак.
     
  4. MrTNTCat

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

    Баллы:
    63
    Имя в Minecraft:
    MrTNTCat
    И кто нибудь даст ответ?
    UPD: На другом форуме говорят, что это действительно на стороне скриптов аторизации.
     
  5. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Да весь рубакит знает что ответ выдает joinserver.php. Но если клиент не изменен то от joinserver.jsp от mojang.
     
    MrTNTCat нравится это.
  6. MrTNTCat

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

    Баллы:
    63
    Имя в Minecraft:
    MrTNTCat
    Ну я здесь не давно ;)
     
    Сникерсни нравится это.
  7. Nicolayka

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

    Баллы:
    88
    Имя в Minecraft:
    Nicolayka
    Учитесь искать, господа. Я давно нашёл где находятся эти выражения.
    Файл HttpUtil.java
    Код:
            if (var3 != null && var3.length() != 0)
            {
                if (!var3.contains(":"))
                {
                    if (var3.trim().equals("Bad login"))
                    {
                        System.out.println("Login failed");
                    }
                    else if (var3.trim().equals("Old version"))
                    {
                        System.out.println("Outdated launcher");
                    }
                    else if (var3.trim().equals("User not premium"))
                    {
                        System.out.println(var3);
                    }
                    else
                    {
                        System.out.println(var3);
                    }
     
                    return null;
                }
                else
                {
                    String[] var4 = var3.split(":");
                    return new String[] {var4[2], var4[3]};
                }
            }
     
    slavik123123123 и MrTNTCat нравится это.
  8. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    он про серверную часть, а не про клиентскую
     
    zuma2 нравится это.
  9. Nicolayka

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

    Баллы:
    88
    Имя в Minecraft:
    Nicolayka
    Сервер нам как раз ничего не пишет, вывод на экране клиента, а значит редактировать надо клиент! И изначально тема была посвящена именно этому вопросу. Вот я и даю ответ.

    А теперь смотрим полный код вывода файла HttpUtil.java
    Код:
        public static String[] func_82718_a(String par0Str, String par1Str)
        {
            HashMap var2 = new HashMap();
            var2.put("user", par0Str);
            var2.put("password", par1Str);
            var2.put("version", Integer.valueOf(13));
            String var3;
     
            try
            {
                var3 = sendPost(new URL("http://login.minecraft.net/"), var2, false);
            }
            catch (MalformedURLException var5)
            {
                var5.printStackTrace();
                return null;
            }
     
            if (var3 != null && var3.length() != 0)
            {
                if (!var3.contains(":"))
                {
                    if (var3.trim().equals("Bad login"))
                    {
                        System.out.println("Login failed");
                    }
                    else if (var3.trim().equals("Old version"))
                    {
                        System.out.println("Outdated launcher");
                    }
                    else if (var3.trim().equals("User not premium"))
                    {
                        System.out.println(var3);
                    }
                    else
                    {
                        System.out.println(var3);
                    }
     
                    return null;
                }
                else
                {
                    String[] var4 = var3.split(":");
                    return new String[] {var4[2], var4[3]};
                }
            }
            else
            {
                System.out.println("Can\'t connect to minecraft.net");
                return null;
            }
        }
    И понимаем, что если клиенту не удаётся подключиться к http://login.minecraft.net/ или какие-то иные проблемы, он выдаёт сообщение
     
  10. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Неа, тема посвящена серверной части, ибо не имеет смысла менять это на клиентской.
     
  11. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    ты вообще где его откапал? какие нафиг Login failed и Outdated launcher? причем тут лаунчер то? нашел класс авторизации в лаунчере и радуется. тут про клиент и сервер спрашивают.
     
  12. MrTNTCat

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

    Баллы:
    63
    Имя в Minecraft:
    MrTNTCat
    Спасибо, но это мало поможет как сделать что-то типа "Скачайте наш лаунчер"?
     
  13. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    @MrTNTCat, Такое уже обсуждалось максимум что вы сможете сделать это автовайтлист при регистрации.
     
  14. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    Packet255KickDisconnect.class от стандартного vanilla унаследовал bukkit. Пакет отправляется в 2 стороны: от клиента к серверу, когда игрок выходит, и от сервера клиенту, когда клиента отключают.
     
  15. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Неожидал от Ission, такого нубства :). Bad login идет от скрипта joinserver об этом уже все знают. А вот failed to verify username уже от сервера.
     
  16. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    Клиент создаёт сокет, подсоединяется к серверу, дальше ловит 255 пакет с сообщением из-за которого его не хотят соединять и закрывает сокет, после чего отображает его содержимое. Другое дело, что сервер его не хранит в классах самих пакетов, поэтому я допустил сию ошибку. Сейчас пытаюсь копаться в исходниках сервера, нашёл всю цепочку от соединения с сервером до начала "игры", но не нашёл ни того, ни другого.
     
  17. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    а по-моему клиент подсоединяется к серверу, получает серверайди, лезет на скрипт joinserver, с которого может получить bad login или ok, потом сервер лезет в checkserver и уже либо пускает, либо отключает с Failed to verify username. причем эта фраза меняется в том же классе, где и ссылка на checkserver.
     
  18. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Ission прав, клиент сначала должен узнать что сервер в онлайн режиме, но я сомневаюсь что из обмена этими пакетами можно что-либо выжать.
     
  19. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Онлайн мод он определяет от сервера и посылает запрос на joinserver, тот уже и отвечает ok или Bad login то что прописано при неверном логин-пароль. А если сессия скажем была получена с другого скрипта, то серверайди не совпадает. И когда сервер от клиента смотрит серверайди и отправляет его на checkserver. И когда сервер при неверноом серверайди получает NO кикает с ответом failed to verify username.
    Все же так просто. Думаю таких подробностей вам хватит что бы это понять :).
     
  20. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Я это и так понял, просто можно попробовать модифицировать сервер так чтобы он отвечал что сервер в оффлайне, но при заходе без сессии(проверяем через PreLoginEvent) кикал с сообщением.
     
  21. Ission

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

    Баллы:
    173
    Skype:
    lokivava
    Сервер проверяет сессию сам.
     

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